Images play a very significant role in any Windows Phone application. So, one should be very careful while
dealing with images. As of now, Windows Phone supports only two image formats
named JPG/JPEG and PNG. Now before concluding on which image format to choose, let's
get into bit more depth of it.
PNG format images are non-lossy
and need very little CPU effort to display because those are pixel perfect. But
at the same time, huge PNG images take too much longer to read from storage and
ultimately lead to slower display.
On the other hand, JPEG format
images are lossy, smaller to store and based
on the compression level much more complicated decoding algorithm is required
to display them.
Another point regarding image is about opacity
and transparency - All the images that use transparency should be stored as PNG
format because JPEG doesn’t support transparency and JPEG format should be used
for all the images that are fully opaque.
Now when coming to Windows Phone apps, performance matters a lot...Isn’t
it?
Well, now some best tips to make our Windows Phone app much more performant:
- Choosing proper image format: Use JPEG for anything large and PNG for anything small, i.e. use PNG for small icons. If image transparency is not a concern then it is always recommended to use JPEG.
- Compiling images with Build Action=Content: Whenever a new image is added to the project, the default "Build Action" is set to Resource. It is always recommended to change this "Build Action" property to Content as it will reduce the size of our DLL, resulting in speedy image and app loading.
Note: Resources are included in an assembly whereas content is
included in deployment package.
- Image size: One of the limitations of Windows Phone is the limited screen resolution. So one has to consider proper image size, in order to gain better performance
I'll keep updating this post as and when I'll get to know about more interesting facts. I would be very happy, if you can add more on to it.
Nice and usefull stuff. Hope to see more on WP
ReplyDelete