WinCE6.0: Making the UI faster

I am building a full screen UI application on Win CE 6.0 device with touch
screen. There are 30 different screens in the UI and each screen is a jpg
file. Each file is around 60KB.
Initially I tried to add all the images as resources and that increased the
application size to 1.7 MB (from 200KB) and I couldn't run that because of
RAM resources.

So, now I am accessing the images from SD card. Eachtime the user touches
the screen, Iam Disposing the current image and importing a new image from
SD, converting that into bitmap and finally displaying the image. This
process is creating a delay of around 1 sec which is noticeable.

What's the best way to handle "Picture slideshow" kind of applications?
(reducing the delay is the main criteria).

I have also tried to access the images from NAND Flash and it's also taking
around 1 sec with the applicaiton (it's a managed application with .net CF2).

Any suggestions on how to handle this?. Thanks in advance for your help.
Thanks,
K



ukalyanAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

bullmonkeyCommented:
60k is a reasonably large file size for the resolution of a machine running ce , is it not possible to convert the jpg to a vector thus reducing the file size?

incidently what is the screen resolution?
0
bullmonkeyCommented:
a typical screenshot of one of the pages might help too, just to see the detail of the image to be displayed
0
pgnatyukCommented:
If the size on the SD-card is not a problem, I'd propose to to keep all images in a "raw" format.
Make a convertor that will load all jpeg images, convert them into the standard DIB section and save the bitmap header and the bit array. So the loading from the main app will be trivial - allocate memory for the BITMAPINFO, load the header, create DIB section and copy the bit array from the saved data into the DIB section.
Atually all that happens when you load JPEG, but in this way you will not unpack the data. So another option can be to find a faster JPEG loader. What you use now?
0
pgnatyukCommented:
One more possible way is load images in a separate thread. Of course control the memory - for example, keep in the memory 3-5 loaded images. When the third image is on the screen, the thread can release the first image and load the sixth.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows OS

From novice to tech pro — start learning today.