R-PhotoOrganizer 1.0.1 work in progress

To my wife Olga

Hardware check list:
  • Pentium 133 equivalent or better power processor
    Pentium 350 equivalent recommended
  • 64MB RAM or more
    128MB recommended
  • Display resolution 800x600, 256 colors or better
    1600x1200, true color recommended
  • 4-40MB free disk space, depends on your current preinstalled software

 

Introduction

Digital cameras become more and more popular. Simplicity of use, low cost of shot, instant photo development, possibility sharing with friends even over seas in a moment makes it a good replacement of a traditional chemical photography.  Words like a digital dark room and a digital photo album entered in our vocabulary. Amateur photographer feel like in old good times, when photo-processing was under control of an author. Big guys provides a lot good software for retouching, color correction and decomposition. It's like expensive photo equipment. Small guys provide tools for organizing and archiving enormous numbers of shots. Taking thousand picture a month is real number. Therefore, help in archiving picture, organize them in hierarchic structure with easy, fast access is major task of such kind of software. And as any photo album, a digital photo album allows to rotate pictures for pleasant view. Digital picture keeps more information in opposite of traditional film shot, it's a timestamp, an exposure information, a commentary, and even GPS coordinates. Sometimes that information isn't so useless, like somebody thinks. Timestamp information helps memorize events, an exposure helps improving photo skills. Unfortunately, many photo editing programs ignore such information or even destroys it. So possibility to preserve the information and then restore it in picture after editing is important. 

Why Java?

If you can do more, than following to instructions of a wizard, and you like OS different than Windows, then 100% Java application R-PhotoOrganizer could be a your tool. Windows users are also very welcome. As a real Java application, R-PhotoOrganizer is distributed with the complete source code, so you don’t need to wait, when a vendor fixed some bugs. Of course, this version is free.

Desirable and real features

Real...
  1. Showing a specific information about a shot added by digital cameras.
  2. Showing as original thumbnails prepared by camera, as full images.
  3. Loss-less image transformation, like rotation, mirroring, and others.
  4. Manipulation with digital camera specific information.
  5. Image renaming, including customizable rename mask + topic.
  6. Creation image collections (albums).
  7. Creation HTML page for image presentation.
  8. Storing collections to CD and database. /new
  9. Complete web publishing. /new

and desirable...

  1. Creation and printing photo albums.
  2. Using GPS info to search pictures.
  3. Export photo album to XML format to printing using another printing programs.
  4. Prepare slide show to upload to a digital camera.
  5. Add copyright, comment, and author tags to JPEG produced by digital camera.
  6. Slide show preparation in a portable format.
  7. Photo "stitching" capabilities.
  8. Flashpix support.

Technique of using

R-PhotoOrganizer GUI includes three major tabs - BrowseSelection, and Album. Tab Browse allows you to navigate over your disk space, including flash memory cards (if you have a flash card reader installed). You can specify a flash card location for fast transferring its content to selection. When you select a directory, which contains images taken by a digital camera, you have to see thumbnails in the bottom panel (thumbnails viewer). Note, the program show thumbnails prepared by a digital camera software. If an image format doesn't include thumbnails, you won't see them, (except you use JAI, when thumbnail images displayed for any file). All widely used digital cameras prepare thumbnail images. Since image format used Canon's cameras doesn't include thumbnail image itself, just provides its name, Canon camera owners have to have both images in a bunch. To see image properties prepared by a digital camera, use right mouse menu. Menu File in the menu bar works only for tab Browse, almost items of menu Tools are applied for tab Selection. If you switched off the menu bar, you can reach items of menu Tools using right mouse button somewhere on a tab frame. If you Macintosh user, press ALT key, to simulate right button mouse click. If an image or a complete folder of images should be renamed, or transformed, then you have to add such images to selection. Select tab Selection, when you finished a selection of desired images. Now, you can do renaming, transformation, extracting thumbnails, extract/incorporate Exif markers, or a generating of a web page. To incorporate Exif markers back to an image file, use transformation None. Before, you start using the program, you have to play with options a bit, to be familiar where you can find results of a work. Starting form beta 2, the product supports photo albums. To activate this feature, you have to have JDBC compliant database installed somewhere and accessible from your computer. For example, you can use MS Access database, if you run R-PhotoOrganizer on Windows machines. Use the option tab Album to set JDBC URL and driver class name. If you use any JDBC driver different than the standard JDBC-ODBC bridge driver, you have to add your driver in class path. R-PhotoOrganizer selects MS or SUN JDBC-ODBC bridge automatically. The current version uses JDBC-ODBC JDBC driver by default. It means, that you have to have some ODBC drivers and DSN presented on your computer. A using MS Access driver is recommended for newbies. To define DSN you have to open Control Panel, double click ODBC icon. You should see ODBC data source administrator panel. Press button Add in tab User DSN. You will see a list of drivers. Select MS Access driver and press Finish. You will see dialog ODBC MS Access Setup. Enter DataSourceName as: R-PhotoOrganizer. Add any comment. Press button Create, to specify a new database. You can select any name and location for the new database.

Web page generation

This program provides a very flexible web page generation ability. You have to prepare a template for your web page, which will show thumbnails of your selection. See file ThumbnailsTempl.html as an example. R-PhotoOrganizer uses the following rules of substitution variables:

!%loop marker of where generation loop is started
!%tnof original (full image) file path name
!%tnif original image file name
!%tntt thumbnail tooltip
!%tnfn thumbnail file name
!%tnc commentary
!%endl end of loop
!%tn+ move to the next file
!%cprt copyright note with link
!%alnm album name
!%webp related path on Web site to original images

If you an owner of Kodak or Sony digital camera

Software of these vendors keeps thumbnail image in a raw format. R-PhotoOrganizer exports such image in BMP format, when it generates thumbnail files. Not all browsers can display BMP files. Kodak cameras also generate intermediate resolution JPEG image for displaying on LCD screen. A next build of the program will include the possibility to extract such images.

History

What new in beta 2
  1. Implemented some album functionality.
  2. Web publishing can work over FTP, so you can directly upload thumbnails sheets to web server.
  3. Revised options, some GUI enhancements done.
  4. Added direct upload images to collection from compact flash reader.
  5. Added export/import Exif markers to JPEG file.
  6. Some bug fixes
What new in build 24
  • Implemented support of RTS/DRI markers
  • Implemented image sliding, use keys +/-
  • Implemented extracting BMP thumbnails for Exif supported Kodak and Sony cameras
  • Some bug fixes
What new in beta 3

Internal redesign of the product

What new in build 25
  • Tiff support. Thumbnails only
  • BMP generation problem fixed
  • GUI fixes
  • Automatic extension generation for thumbnail, if an extension isn't specified in the thumbnail file name mask.
What new in build 26
  • Fixed problem in image file name for Netscape browsers
  • Added commenting feature in album
  • GUI fixes
What new in build 28
  • Added JAI support
What new in build 29
  • JAI is used for generation thumbnails, if an image doesn't contain ones
  • Fixed bug related to Unix platforms
  • Fixed problem in a template for HTML generation, when Netscape's browser showed a generated page incorrectly
  • Added a shell file for starting the program on Linux
  • Added commenting for JPEG files
What new in build 30
  • Added support of reflection an album tree to a directory tree (this feature was not tested much, so be careful). Actually now you can move/copy an album to an equivalent directory tree, to save it on CD-ROM or another media.
What new in build 31
  • Fixed problem preventing normal running on JDK 1.3beta. See also the note in installation guide about other problems of 1.3 beta.
What new in RC1

All planned features for version 1.0 were implemented and passed preliminary testing. Finally, current version is ready to be named release candidate one.

  • Fixed many problems related to Web publishing, including opening multiple FTP connections.
  • Implemented sending a collection by e-mail.
  • Added multithreading for long time operation.

Build 36 is release version

Since I didn't find more serious bugs, I decided to name build 36 release version. All further builds will belong version 1.0.1.

Goals version 1.0.1

I'm planning to work more on improvement UI, and also extends photo albums organization and publishing capabilities.

What new in build 37
  • Implemented Ctrl+Right mouse button to open a context menu affected on group selection in selection.
  • Started work on D&D for albums.

Known problems

R-PhotoOrganizer is a beta software, so some problems are still there.

  1. Modification some GUI option will be reflected only in a next start of the program.
  2. Transformed images can't be uploaded to a camera for slide show.
  3. Enabling/disabling GUI notification sometimes works incorrectly.
  4. JPEG standard is supported not completely, so check log file if you have any doubts related to unexpected behavior of the program. (Some problems fixed in beta2 build 24.)
  5. Address book isn't implemented yet, because it's a separate product.

 

Software check list:
  • Java VM supporting JDK1.1 or newer. Java2™ (JDK 1.2.2) or newer recommended
  • Swing 1.1 or newer

Optional

Supported digital images formats and cameras:
  • Exif (Jpeg, Tiff)
  • CIFF (Jpeg)
  •  JFXX (Jpeg)

Among them such digital cameras vendors, like: Nikon, Kodak, Canon, Fuji, Sony, Ricoh, Olympus, and many others.

Installation

This version is distributed as a ZIP file. Unzip this file somewhere on your hard disk. If you don't have preinstalled Java VM on you computer, you have to do that. In depending on your OS, you can download Sun's JRE1.1.6 or better like  JDK 1.2.2

Warning: JDK 1.3beta has a serious bug in Swing  related to InputContext for unsupported Locales. If no InputMethod for selected Local in Miscellaneous tab of the Setting panel, then all popup panels will be inoperable. It looks like, if InputContext is not found for default Locale, a component tries to get it from a parent, but a parent returns null. Since, the current version should be compatible with JDK 1.1, I can't use any work around based on checking of availability of InputContext for specified Locale. So, if you specified a wrong locale and GUI is freezing, terminate it and modify .ini file manually specifying en_US locale.

If your platform is Windows, then a better choice will be Microsoft's VM already preinstalled on your computer. However, check Microsoft's site for the best results.

You also need to have installed JFC (Swing 1.1). You need version 1.1 beta 3 or newer. If you use Java2 (JDK1.2.x), you don't need to download and install JFC.

Since build 28, R-PhotoOrganizer can use Java Advanced Imaging (JAI) for viewing images in formats different, than JPEG, for example TIFF, Flashpix and many many others. JAI is also used for rendering thumbnails, if an image doesn't include one, or isn't JPEG or TIFF format. To activate this feature, you have to download current version of JAI , install it, and use R-PhotoOrganizer_JAI.bat as an example for launching. JAI includes some native code, which can be activated, if you copy DLLs to system path. Notice, JAI is compatible only with Java2. If you don't have JAI, then R-PhotoOrganizer won't use it. JAI is also very slow and memory consuming, so if you don't have a Sun's work station, or an Intel Pentium III/600 computer, using JAI can be annoying. 

Now, you're ready to launch the R-PhotoOrganizer. Since, the current version doesn't include installation software, you have to modify batch/shell file specifying a correct path to system class libraries and JFC. (If you are going send albums by e-mail, you have to add mail.jar, and jaf jar files to your classpath. )

Windows users can enjoy Windows executable version of the product. No any additional download is required.

 

Remember

Always do a backup copy of important images.

Contacting information

To contact to the author, use e-mail dmitriyr@home.com. Any feed back is highly appreciated.