My blog has been moved to ariya.ofilabs.com.

Monday, March 03, 2008

introducing PhotoFlow

As I wrote before, the obvious complaints people are having after trying out Chad's precompiled PictureFlow for Windows Mobile are (1) slow start-up and (2) memory footprint. These stem from the fact that the example demo program that I included was written for clarity so that you can get your feet wet quickly. To overcome the initial loading and memory consumption problem, of course you have to attack the problem from a different point of view.

So here it comes: PhotoFlow. It is a small application for view images and photos, designed to run on mobile devices --like those HTC smartphones, other Windows Mobile phones, Qtopia-based handsets etc-- although you can test it of course on the desktop (but I will focus on the intended target platform only). The usual trick employed here is the so-called "delayed loading". PhotoFlow never attempts to load, resize, and prepare an image to be rendered if that image is not in the vicinity of the user's view. Thus, it starts rather instantly and won't suck hundred of MBs of the precious memory space. This is even done without changing anything in the original PictureFlow widget, we just need to subclass it and handle several things smartly.

Because I am (still) insane, PhotoFlow supports both Qt/Qtopia 4 and the old Qt/Embedded 2.3 (actually also Qt 3, for which there isn't any embedded version) with a single code base. Also the delayed loading part has two versions: with and without QThread. Of course the former is better but some platforms with Qt/E (or even Qtopia, if you want) might not support threading at all, hence the latter.

Get it while it's hot and flood my inbox with your flames.

10 comments:

Anonymous said...

Hi

Complied no problem qt3.
Works as advertised.
Neat app.
Wonder if it could be made
to say, user defined size like 800x600 or whatever.
Just so you could use it
more like a desktop app.

Lou

Anonymous said...

Hi!

I continue to be utterly impressed by your P*Flow work. However, I must correct one small detail in your blog: there is indeed an embedded version of Qt 3, as you can see on ftp.trolltech.com/pub/qt/source/

- Paul

Anonymous said...

You may want to know, in case you don't, that the name photoflow is alread used by a flash script that does the same effect.
bye

Ariya Hidayat said...

@Lou: further improvements are still being worked on, including OpenGL renderer so that it's also useful as desktop app.

@Paul: thanks for the correction. I wonder if there is any product with Qt 3 embedded, though.

@Anonymous: same case as the PictureFlow name. I keep using both anyway, as I named them independently of those Flash.

Anonymous said...

where can I download a version for wm6 devices or is it still in development?

Khizer said...

I have a problem with PhotoFlow. The first picture is replicated upto 5 times. However if I start browsing pictures immediately before they are loaded, the first picture isn't replicated but some others are. Something to do with the timers?

viper89 said...

cool good work is it possible to have the app be able to zoom in on the pics too like if u double tap or something, maybe in future realese.

Anonymous said...

From where we can download the picture flow application ?

Ariya Hidayat said...

@Anonymous: If you read the FAQ:

How can I install PictureFlow on Windows? You don't provide any installer!

You have to build it by yourself. Note that the intended audience of PictureFlow is developers, not end-users. It is just a normal Qt widget that needs to be used in a real application.

Anonymous said...

I want that when photoflow reaches at last images start again from first jst as rotation of images.
how this can be done????