This is a native BlackBerry 10 project. The user opens the app. There is a button to select a file on a black background. The user selects a jpeg file( program must check if it is jpeg and only open jpegs.) The picture is scaled on the screen with a black background. On the bottom of the screen below the jpeg is a label showing file size and also a slider to change the jpeg compress quality 100-1(label shows what quality setting it is). As the user slides the slider the quality number changes. The picture compresses as the slider is released and the file size is updated. This is all done in memory. There is a button that says "Done" that finalizes the compression and saves it to a file(the same directory it was grabbed from but with a different name.
This must be done in Cascades native BlackBerry 10. Using open source c++: [url removed, login to view]
Also using that library the user uses a second slider that can percentage scale resize the picture and it displays the resulting file size. So two percentage sliders on the screen...one for compression and the other for size.