Rightway developed a desktop application in AIR for resizing and uploading images (JPG/GIF/PNG/BMP) from local file system to server.





  • Adobe AIR, PHP 5.0, MySQL 5.0

The Client

Juan Carlos Saravia, DVKA, S.A.

The Challenge

  • Basically this application is for photographers that are scattered throughout the country. The admin need to see their shots online. If we decide that we like one of their pictures then they will upload that image but via ftp. Sometimes the images are very big and we just need a resized copy of the original image. JPG or PNG at 80% quality would be ok. We don’t want the server to do the processing for resizing images instead we want their pc to do the work. Even if it takes some time to do the conversion, the upload process is still going to be faster.
  • Upload reduced version of very large/big images (of size in several megabytes) on server. For example photographer may try to upload 12 megapixel images (or bigger) and application will resize it to upload a smaller 640×480 (approx.) image, NOT the original one.
  • User should be authenticated before he can start uploading the images. There is a directory for each user (by username) on server. All uploaded images by a user should go in user specific directory.
  • Once user login, a new folder (image gallery) with current date and timestamp will be crated on server in his directory. Then he can upload images in group of 10.
  • The application should run on Windows/MacOS/Linux platforms.

The Solution

We decided to develop the required desktop application in Adobe AIR because of its capabilities to provide rich user interfaces. Also, AIR applications are platform independent and run on Windows/MacOS/Linux. We used PNGEncoder action script library for reducing/resizing big size images to smaller size of 640×480 at client side. This helps in reducing the burden on server for processing the images first and then saving. User can even set the required height & width for the output file.

Users can just drag and drop the images on upload area in application to upload images in a batch of 10.

In order to manage the uploaded images as per upload session, every time a user logs in, we dynamically create new image gallery (directory) with current date and timestamp inside user specific directory. All following image uploads are done in the newly created image gallery until user logs out or selects to create new image gallery.

We also developed a complete progress bar component to show the upload progress to the user.