Archive for the ‘Software’ Category
Photocrumbs is another spare-time project of mine. Every now and then, I need to quickly throw a handful of photos on the web without going through the rigmaroles of using a full-blown photo sharing solution. So I cobbled together a super simple single-file PHP app for instant photo publishing. Photocrumbs is essentially a single PHP script (plus a favicon.ico file) which can be deployed in a matter of minutes on any web server with PHP and the GD library. Drop the script into a directory writable by the server, and you are good to go (see the project’s page for more detailed installation instructions). To publish photos, simply copy them into the photos directory.
Photocrumbs’ claim to fame is the expiration functionality. When enabled, it automatically deletes photos that are older than a specified number of days. This way, you don’t have to remember to manually remove temporarily published photos. This feature is disabled by default, but you can easily activate it by editing the appropriate settings.
Other Photocrumbs niceties include the ability to add descriptions to each photo (either by entering text into the UserComment EXIF field or by creating an accompanying .php file), and support for basic EXIF info. For each photo, Photocrumbs displays key info like aperture, shutter speed, ISO, and timestamp.
Although I use Pygmynote on a daily basis, I haven’t tweaked it for a while. Basically, the script does what it’s supposed to, and I didn’t feel an urgent need to improve it.
Over the weekend, though, I finally got around to implementing a couple of small features as well as cleaning and tweaking the code. Continue to read.
Serious Android photographers need a serious camera app that offers advanced functionality and is not overloaded with useless features. They need something like Focal. This open source app is still at an early stage of development, but it already shows a lot of promise, and it has the potential to become a viable alternative for Android photography enthusiasts.
Focal features a streamlined interface which makes it easy to take photos and operate the app. To change the focus point, tap on the desired area on the screen, then tap the Shutter button to take a photo. To switch between the supported shooting mode, tap and hold the Shutter button, then swipe up to activate the semi-circle with the available shooting modes. Slide the finger to the desired mode to enable it. Besides Panorama and Video, Focal supports the so-called PicSphere mode which is an open source implementation of Google’s popular Photo Sphere feature that allows you to snap multiple photos in every direction and then automatically stitch them into a single panorama image.
Focal allows you to quickly preview taken photos by swiping down from the top of the screen. This displays a thumbnail gallery which you can browse by swiping forward and backward. The gallery features two buttons that can be used to open the currently viewed photo in an external photo viewer or photo editing app.
To access Focal’s options, swipe from left to right starting at the edge of the screen to evoke the main toolbar. Each button on the toolbar opens a palette containing the available options. Most buttons here — such as White Balance, Exposure Compensation, ISO, and Flash — should be familiar to most photographers. Using the appropriate buttons, you can select between different scene modes and effects. The HDR button lets you enable the HDR feature which automatically takes three bracketed photos. Focal supports several burst modes, and you can use the Burst button to enable the burst mode you want. Each palette can be pinned to the screen, making it easier to quickly access often-used options. Better still, all settings adjustments are persistent, so you don’t have to enable and configure the options every time you start the app.
Since Focal is still labeled as beta, some features are still missing. For example, the app doesn’t support different focus modes (manual, macro, etc.) and there is no way to change the default storage location. Moreover, some features can behave erratically. The PicSphere, in particular, can be rather temperamental at times.
Recently, I bought an EPSON Perfection V500 scanner, and I spent last weekend scanning piles of negatives. One thing about scanning negatives is that it involves a lot of waiting: you click the Scan button and then wait till the contraption does its scanning thing.
Meanwhile, you need to find a diversion to keep you entertained. Having a good game app for Android would definitely help. And after rummaging through the F-Droid repository, I found a perfect candidate for the job. FreeShisen is based on the Shisen-Sho Japanese game. The game has a lot in common with the popular tile-based game of Mahjong, but it has more elaborate tiles and rules.
Despite that, you can master the game’s basics in a matter of minutes. Depending on the level of difficulty and your skills, a single game usually takes between 5-10 minutes — perfect for passing time between scans. The app is open source and available through F-Droid and Google Play Store.
While you can use a regular notebook to keep track of exposure info (shutter speed, aperture, focal length, etc.), it’s hardly an ideal solution. But if you happen to use an Android device, you can replace the notebook with the Exif4Film app from Code United to simplify the task of recording exposure info and applying it to scanned photos.
The app is available free of charge from the Google Play Store. During the first run, the app prompts you to import the film database containing pretty much every film in existence. Next, you need to add your photographic equipment (cameras, lenses, and filters) to the app. To do this, tap the Menu button and choose Gear. Tap the Add gear button, pick the desired item, and fill out the required fields. When adding a camera, you can specify which lenses in the database can be used with it. This works for lenses, too: when adding a lens, you can select the cameras that can be used with it. When you are done, press Save to add the equipment item to the database. Once you’ve added your gear, return to the main section, tap the Add roll button, and provide the required info. Press Save to add the roll, and you are good to go.
Recording exposure info with Exif4Film couldn’t be easier. As soon as you take a shot, open Exif4Film, select the roll, tap Add to add a new exposure, and enter its values. In addition to the standard values like aperture, shutter speed, focal length, exposure compensation, etc., the app automatically records the geographical coordinates (useful for geotagging photos). Exif4Film also lets you take a photo and attach it to the current exposure. When you add the next exposure, the app automatically populates the fields with values from the previous entry. This can be a real time-saver when you take several photos with the same camera settings.
Exif4Film features other creature comforts, too. The View on map button displays the roll on a map complete with markers for each exposure. When you finish the film roll and record the time when it has been unloaded in Exif4Film, the app conveniently changes the roll’s icon, so you can easily identify the active and processed rolls in the list.
As you keep adding rolls to the database, managing them may become increasingly difficult. This is where the app’s filtering functionality can come in rather handy. Using it, you can display only the rolls that match specific criteria, such as camera model, film, and loaded/unloaded dates.
Exif4Film also has a companion desktop utility which can help you to import the recorded exposure into the scanned photos. To do this, you need to export data from a specific roll first. Tap the Export button in the Exif4Film app, select the desired roll, and tap Export. You can then export the data to a file on the device or Dropbox. Transfer the exported .xml file to your machine, launch the Exif4Film desktop utility and use it to write exposure info to the scanned photos. The utility is simplicity itself, so you shouldn’t have problems figuring out how to use it.
There are plenty of reasons to choose Debian, but having the most recent versions of your favorite applications is not one of them. Software updates trickle down to the stable version of Debian very slowly, which means that packages in the distro’s repositories are likely to be a few versions behind the current releases. digiKam is no exception: the Debian stable repositories contain a version of digiKam which can be considered outdated. However, if you don’t mind the risk of making the Debian system unstable, or even breaking it altogether, you can opt to upgrade the distro to unstable and then install the latest version of digiKam from the experimental repositories. (Note: all commands mentioned below must be executed as root.)
The first step is to upgrade Debian to unstable. To do this, run the nano /etc/apt/sources.list command to open the sources.list file in the nano editor. Disable stable and security repositories as follows:
Add then the unstable repositories:
Press Ctrl+X to save the changes and close the editor, then run the commands below to update repositories and upgrade the distro:
apt-get update && apt-get dist-upgrade
Once you’ve done that, open the sources.list file for editing again and add the experimental repository:
deb http://ftp.debian.org/debian experimental main contrib non-free
Save the changes and run the apt-get update command. You can then install the latest version of digiKam from the experimental repository using the following command:
apt-get -t experimental install digikam
If everything goes smoothly, you should have the most recent release of digiKam installed on your system.
If you are looking for a no-frills depth of field calculator app for Android, you can do much worse than giving the DoF Calculator a try. Released under the GPLv3 license, this app has the virtue of doing one thing well: calculating the depth of field and limit values for any given camera model, lens focal length, and distance to the subject combination.
DoF Calculator is not available in the Google Play Store, but you can either sideload it using the latest APK package from the project’s website, or install the app through the F-Droid market. Unsurprisingly, DoF Calculator is very straightforward in use: pick the desired camera model, focal length, aperture, and the distance to the subject, and tap the Calculate button. The app then returns three values: near and far limits along with the total depth of field.
A new version of the digiKam Recipes ebook is available for download. All screenshots and material have been updated to reflect changes in the most recent version of digiKam. The new release of the ebook also features the new Apply EXIF Metadata to Multiple Photos recipe and a refreshed cover.
Readers who already purchased the book will receive the new version free of charge. If you haven’t received your copy, please send your order confirmation as proof of purchase to firstname.lastname@example.org, and I’ll email you the latest version of the book.
If you happen to use digiKam for managing photos scanned from negatives, you’ll appreciate the application’s capabilities to add and edit EXIF metadata. Using digiKam’s dedicated interface for managing metadata, you can add key EXIF values, such as maker, device model, aperture, shutter speed, ISO, focal length, etc., to the scanned photos (provided you have these data handy).
However, digiKam doesn’t allow you to apply the same EXIF data to multiple photos in a single operation. Adding the same maker, device, ISO, and focal length to a set of photos one-by-one can be a bit of a nuisance, but you can use a simple trick to work around this limitation. Start with adding EXIF values to a single photo. Select then the rest of the photos, choose Image → Metadata → Import EXIF, pick the processed photo, and press OK. This will apply EXIF data from the processed photo to the selected images.
A Raspberry Pi-based server is perfectly capable of sharing photos on the Web. But instead of deploying Gallery, Piwigo, or any other heavyweight photo publishing application, you might want to opt for something nimble like Pygmyfoto that offers a straightforward way to publish photos as a continuous roll. The application allows you to give a brief description and assign tags for each published photo. In addition to that, Pygmyfoto automatically processes and displays key EXIF data (exposure, aperture, and ISO), adds a link to the full-size version of the photo, and generates a map URL. The latter lets you view the exact place where the photo was taken using the OpenStreetMap service (provided the photo has been geotagged). Pygmyfoto features a few creature comforts, including the search by tags functionality, rating capabilities, and simple view statistics.
The Pygmyfoto installation on Raspberry Pi consists of a few relatively simple steps. First of all, you need to install the required packages. To do this, run the following command on Raspberry Pi:
sudo apt-get install apache2 php5 sqlite3 php5-sqlite imagemagick libimage-exiftool-perl git
Switch then to the /var/www directory and clone Pygmyfoto’s GitHub repository:
sudo git clone https://github.com/dmpop/pygmyfoto.git
Use the sudo chown www-data:www-data -R pygmyfoto command to change the directory’s owner and group.
Switch to the pygmyfoto directory, open the phpliteadmin.config.php file in a text editor, and replace the default password by editing the $password = “admin”; line. Modify the default values in the config.php file, if necessary.
Add photos to the pygmyfoto/photos directory, run the ./pygmyfoto.sh command in the terminal, and provide the required info.
Point the browser to http://127.0.0.1/pygmyfoto (replace 127.0.0.1 with the actual IP address or domain name of your server) to access Pygmyfoto.
To access and manage the pygmyfoto.sqlite database, make it writable using the sudo chmod 600 pygmyfoto.sqlite command. Point then the browser to http://127.0.0.1/pygmyfoto/phpliteadmin.php and log in using the password specified in the phpliteadmin.config.php file.