1) is it possible to draw JPEGs directly in container ? Because I need to take very time consuming steps in order to make an image draw(display) on screen.
2) if yes then how ?
3) if no then why JPEGs can't be drawn/displayed directly on screen(container) ?
4) Is there any other format beside BMP that can be drawn directly?
Use CMdaImageFileToBitmapUtlity or CMdaImageDescToBitmapUtlity to load up BMPs, JPGs, PNGs and WBMPs. Check the SDK's documentation for more information.
So conclusion is that the only format that can be displayed on screen is Bitmap format. Nothing can be drawn directly , be it JPEGs, PNGs or anything else.
They need to be converted in Bitmap using CMdaImageFileToBitmapUtlity/CMdaImageDescToBitmapUtlity which is deprecated in Symbian 7.0s or ICL (CImageDecoder) which I am already using.
I have conducted a test.
-------------------------------------------
I am loading 7 JPEGs from device (brand new 7610). Average size of an Image is 249KB. Operations being performed are Conversion from JPEGs to Bitmap and then Scaling to 50x50 size icons and finaly drawing the icons on screen. Reslution of all images is 1152x864.
And it takes exactly 56 seconds which is 100% not practical. Though in my program file session is being created for each file but I guess that will not take much time.
basically you should make the images to right size before using them in the application.
Basically there is no use of having 1152x864 sized images if you are always only drawing 50x50. 50x50 images could also be saved as mbm files, so you could use simple load() function to load it to bitmap object. This would propably make the loading already acceptable.
in case you need to use the big size images as well, then, just make the additional thumbnails sized 50x50 to show where the small size is applicaple, just as the normal photo selection is doing already.
It seems you are making thumbnails out of camera-captured images which are 1152x864 in size on the mega-pixel 7610. This is quite a substantial resizing operation (1152x864 to 50x50) . I think there is no way to cut down on the time taken. What you can try is use DrawBitmap() from the GC to directly blit the larger image to the 50x50 area. Atleast this will cut one explicit step (resize) from the entire process. Be warned though ... Resize-Blits in Symbian are quite slow too! Hope that helps!
You might use the thumbnail class, which will create a small file (both size and resolution) when there is no thumbnail or thumbnail is outdated. Next load will be faster.
Loading a megapixel image in 7610 with ICL would take around 1-2 seconds. There seems no way to improve but wait for faster phone from Nokia.
Oh the media you use might matter, a slow MMC compare with phone memory, for example.
luke
p.s. for how to use thumbnail, search the forum and you will find many posts, some with codes.
We are also having problems with images(MJPEG) not being able to be displayed on Nokia 6680 phones. We think it is a firmware issue because in previous firmware versions V2.39.140 (tested with Nokia 6630) the images can be displayed without problems. Therefore, it would be logical that newer firmware versions can also support mjpeg, since most software are backward compatible;but it seems not to be the case.
Can anyone at Nokia help us resolve this issue?
Many telecom providers we are in discussion with are very interested in our solution but so far the only 3G phones that can sucessfully our MJPEG are motorola. They perfer to have the Nokia phones be able to display MJPEG also.
Since motorola 3G phones (E1000. v975) can display MJPEG I am at a lost as to why Nokia 3G phones with the new firmware cannot.
we alone cannot solve this problem. We need assistance from Nokia HQ.