Welcome!

Linux Authors: Victoria Livschitz, Srinivasan Sundara Rajan, Carmen Gonzalez, Amy Lindberg, ChandraShekar Dattatreya

Related Topics: Linux

Linux: Article

Managing Digital Pictures with Linux

Create your own photo op

In August, as the proverbial dog days of summer were upon us, I found that news in the Linux world slowed as many people went on vacation with their families. Consequently, these Linux users spent a considerable amount of time snapping large numbers of pictures, capturing memories of landmarks, friends, and family.

I too had the privilege of spending almost two weeks with my family on a trip through the Canadian Rockies where I amassed hundreds of pictures on my digital camera. Because storage is cheap and there's little incremental cost in taking digital pictures, I found myself in the situation where I had so many pictures I couldn't begin to organize them effectively without help. So I started to investigate options for organizing these pictures using Linux desktop software.

Extracting Images from Your Digital Camera

There was a time when extracting images from your digital camera to Linux was somewhat cumbersome. Those days have since passed since there are a number of Linux applications designed for use with your digital camera. Transferring pictures from your camera and various types of digital multimedia storage can be accomplished in a variety of ways. The following are the results of my research on how to acquire and manage these pictures on your Linux desktop and a firsthand account of my research.

gtkam

(www.gphoto.org)
gtkam is a popular application for extracting images from your digital camera, and it's very easy to use. Simply connect the camera cable and turn on the camera, then under the Camera menu choose Add Camera (see Figure 1). You should be able to navigate in a file explorer interface to the files stored on your camera. As with any third-party piece of software you may find that new cameras may not be immediately supported, but by and large the most popular digital cameras are supported well under gtkam.

Media Readers

When I travel I have more than enough chargers and cables so I don't synch my camera via cable. Instead I use a PCMCIA media card reader to take pictures off the flash card that I use in my digital camera and transfer them to my hard drive. I do this by using Konqueror to drag and drop pictures from my flash card to directories on my hard drive. I like this option because it allows me to also copy data including documents and presentations from one PC to another. The nice thing about this method is if you change your camera to one that is not well supported under Linux, you can still use your same tried and true method for transferring pictures. You can also use a USB flash reader that reads your flash card.

I like this option once again because it's not dependent on camera compatibilities. Also, if you have multiple flash cards like me you can download images off one card while the other card is in the camera. See the sidebar on how to mount your digital media via USB.

Linux Photo Album Software

Until recently I knew very little about the image browsers and photo album software available on any platform, let alone Linux, so I decided to try out all that I could find. At the onset my agenda was to simply find something easy to use. With a little research I realized that what I wanted was the ability to organize, crop, and fix "bad" pictures, whether that meant darkening those taken in full sun or cropping out the head of an onlooker who spoiled my shot of a notable landmark.

Konqueror

(http://konqueror.kde.org)
You may be familiar with the Konqueror file browser included as an integral part of the KDE desktop or you may have even used Konqueror to browse the Web. This program is a virtual Swiss army knife of tools integrated into one program. For digital picture buffs you can use Konqueror to view a directory of images as thumbnails, and with its integrated image viewer capabilities you can view the images at their actual size (see Figure 2). You can also export the images to an HTML image gallery that you can view locally or upload to the Web. You can also choose which size thumbnails to use in your gallery, which can also serve double duty as a batch-resizing tool (providing you are okay with the 1,000 pixel-wide limitation). Overall, Konqueror is not the most robust tool for viewing and manipulating pictures but it's a well-integrated and easy to use one for viewing images.

kalbum

(www.paldandy.com/kalbum/)
kalbum is an image browser that was included with my KDE desktop. The kalbum image browser allows you to add data to images such as comments and to rotate them when necessary (see Figure 3). In addition, kalbum allows you to create a rudimentary photo album. If your primary goal is to efficiently view the images, kalbum is a fine choice; if your needs are a little more advanced, you should probably keep looking.

digiKam

(http://digikam.sourceforge.net/)
After looking at a number of photo manipulation packages I found that the application that worked best for me was digiKam. It provided a balance of organizational features, presentation formats, and photo editing. Not only can you view images in an album format, but you can manipulate them or even create an HTML photo album that you can upload to a Web site.

Viewing and Managing Photos

One of the most important things for me with my newly acquired scores of digital pictures was the ability to browse through them and organize them so I could find what I wanted quickly. digiKam does a decent job of this. From an image management standpoint I like the way digiKam creates albums that can be designated by "collections" that you modify. These collections or categories then allow you to view by collection or album. In addition, you can right-click on the thumbnails within an album to rename them or add comments. Plus you may want to create slideshows when you share your pictures. Once again this little open source firecracker offers a number of interesting transition effects when viewing a slideshow.

The only thing that I dislike about the digiKam interface is the inability to view pictures in a three-frame interface. Each picture that I want to edit comes up in a separate window, but that can end up causing me to have a bunch of open windows. Rather than just complaining about it, I went to the KDE Web site and entered bug 9007 as a feature request. Maybe this functionality will show up in a future version. Either way it's good practice to try to provide feedback to the open source development community.

Editing Photos

If you're a photography novice as I am, there's nothing you would like better than a second chance. However, that's not all that likely when you have that once-in-a-lifetime shot ruined by a thumb or maybe the wrong exposure. Not to worry. digiKam offers the ability to improve upon our mistakes. The first set of features doesn't alter the content of the picture so much as it removes or reorients the image. The cropping, rotating, and resizing of pictures are all pretty straightforward. You can double-click on a picture from the album view, which spawns the image in a screen where you can directly edit it; a right-click gives you a menu with numerous options. To trim a picture just drag a selection box (clicking and holding the left-mouse button) and then right-click to choose crop and the back of someone's head is instantly removed from a shot.

In addition to the ability to manipulate the size and shape of the picture, digiKam can also alter the content, including adjusting the brightness and contrast or correcting the gamma. (Gamma correction is important for viewing pictures on a computer screen, so if you want to share your images through a Web site, this may be of greater importance than if you just want to print them out.)

Plug-ins

Also available for the digiKam package are a number of plug-ins that extend the functionality of the program. At the time of my research there were nine documented plug-ins that would try to help improve your picture for printing (e.g., adjust levels, noise reduction), as well as special effects plug-ins like an oil painting plug-in and a raindrops special effect. I would guess that more plug-ins are in the works.

Advanced Photo Editing with the GIMP

(www.GIMP.org)
Something would be amiss if I mentioned photo editing and didn't mention one of the most popular and powerful image editing tools available for Linux and other platforms as well. This package is known as the GIMP (GNU Image Manipulation Program). The GIMP is a powerful multiplatform photo manipulation tool. If you are familiar with the popular Adobe Photoshop program (www.adobe.com/products/photoshop/main.html), you'll probably find the GIMP somewhat familiar.

You can use GIMP to create vignettes, add text, or alter the pictures in a variety of ways (see Figure 4). You can even create alterations using the extensive filters to distort or add special effects to an image. Plus, the GIMP does have the ability to acquire images right from your camera. I can't begin to do justice to all the features in this powerful image-manipulation package but, whether you are a Linux user or a user of another operating system, the GIMP is well worth checking out.

Summary

Hopefully you now have all the information you need to manipulate and view digital pictures on your Linux desktop. Also, it's interesting to note that all the software highlighted in this article falls under a free license so the acquisition cost of this software is pretty much limited to your time and your bandwidth. Also, if you are so inclined, you can even improve upon the work by authoring an improvement or helping with the product to meet your needs and probably that of someone else.

SIDEBAR

USB Media Readers and Linux

When it comes to extracting pictures from your digital camera, you can either read from the camera or read the media. If you lose your camera cable (as I have done many times), it may be easier just to read the media from your camera directly whether it be flash RAM, SmartCard, or some other format. I have both a PCMCIA flash card reader that, as far as Linux is concerned, looks like a hard drive and a USB flash card reader. Since the latter is most likely the situation you'll be in, I'll share the following steps to mount your card and copy your files from the portable medium to your PC.

Step 1: Locate Your USB Drive

As you may already know, Linux devices are listed in the /dev directory. This is also the place to find your USB devices. My guess is that once you have plugged in your USB reader with the storage card, your card will be /dev/sda1. There are a number of ways to try to discern what device name is assigned to your hardware, but my experience has shown the fastest way is to just try to mount the device, and if you get errors try the next one. For example, try to mount /dev/sda1. If that doesn't work, try sda2, sda3, etc. Then you can try the same procedure with /dev/sdb1...you get the picture. However, if you want to try to be more scientific, try to identify the USB controller that's mapped to an SCSI device on your system using sg_map. As the root user you can run sg_map -i to find out which is your compact flash drive. Here's an example of my results from my laptop with a USB flash reader:

mrhinkle@linux:~> su
Password:
linux:/home/mrhinkle # sg_map -i
/dev/sg0 /dev/sda Generic STORAGE DEVICE 1.01
linux:/home/mrhinkle #

Note that my storage device is at /dev/sda# where in this case the number is 1.

Step 2: Mount the Device

Mounting a file system simply means attaching a hardware device to the Linux file system somewhere in the hierarchy. In my case I have a /mnt directory, so to mount my flash drive I do the following:

linux:/mnt # mkdir flash
linux:/mnt # mount -t vfat /dev/sda1 /mnt/flash
linux:/mnt # cd /mnt/flash
linux:/mnt/flash # ls
. .. bootex.log dcim found.000 found.001 misc system .Trash-mrhinkle

The first step was to make a directory or mount point (mkdir /mnt/flash) at the point where I wanted to access the card. The second part is to execute the mount command, which requires you to be root or superuser. The anatomy of the command is as follows:

  • mount: The command to attach a file system
  • -t: The flag for type
  • vfat: The argument indicating the file system type (which is a DOS format)
  • /dev/sda1: The device hosting the file system I want to access
  • /mnt/flash: The directory where I want to mount the file system
This may be overly simplified for those experienced users, but it was complicated for me the first time so I thought I would spell it out in greater detail.

Step 3: Copying Files

Once you have your digital medium mounted at the directory point, you can copy the files by navigating back and forth through your favorite graphical file manager (Konqueror for KDE users, Nautilus for Gnome users), or simply dragging and dropping files from one window to another.

More Stories By Mark R. Hinkle

Mark Hinkle is the Senior Director, Open Soure Solutions at Citrix. He also is along-time open source expert and advocate. He is a co-founder of both the Open Source Management Consortium and the Desktop Linux Consortium. He has served as Editor-in-Chief for both LinuxWorld Magazine and Enterprise Open Source Magazine. Hinkle is also the author of the book, "Windows to Linux Business Desktop Migration" (Thomson, 2006). His blog on open source, technology, and new media can be found at http://www.socializedsoftware.com.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@ThingsExpo Stories
There's Big Data, then there's really Big Data from the Internet of Things. IoT is evolving to include many data possibilities like new types of event, log and network data. The volumes are enormous, generating tens of billions of logs per day, which raise data challenges. Early IoT deployments are relying heavily on both the cloud and managed service providers to navigate these challenges. In her session at Big Data Expo®, Hannah Smalltree, Director at Treasure Data, discussed how IoT, Big Data and deployments are processing massive data volumes from wearables, utilities and other machines...
SYS-CON Events announced today that Gridstore™, the leader in hyper-converged infrastructure purpose-built to optimize Microsoft workloads, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. Gridstore™ is the leader in hyper-converged infrastructure purpose-built for Microsoft workloads and designed to accelerate applications in virtualized environments. Gridstore’s hyper-converged infrastructure is the industry’s first all flash version of HyperConverged Appliances that include both compute and storag...
The Internet of Things promises to transform businesses (and lives), but navigating the business and technical path to success can be difficult to understand. In his session at @ThingsExpo, Sean Lorenz, Technical Product Manager for Xively at LogMeIn, demonstrated how to approach creating broadly successful connected customer solutions using real world business transformation studies including New England BioLabs and more.
WebRTC defines no default signaling protocol, causing fragmentation between WebRTC silos. SIP and XMPP provide possibilities, but come with considerable complexity and are not designed for use in a web environment. In his session at @ThingsExpo, Matthew Hodgson, technical co-founder of the Matrix.org, discussed how Matrix is a new non-profit Open Source Project that defines both a new HTTP-based standard for VoIP & IM signaling and provides reference implementations.
DevOps Summit 2015 New York, co-located with the 16th International Cloud Expo - to be held June 9-11, 2015, at the Javits Center in New York City, NY - announces that it is now accepting Keynote Proposals. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long development cycles that produce software that is obsolete at launch. DevOps may be disruptive, but it is essential.
Explosive growth in connected devices. Enormous amounts of data for collection and analysis. Critical use of data for split-second decision making and actionable information. All three are factors in making the Internet of Things a reality. Yet, any one factor would have an IT organization pondering its infrastructure strategy. How should your organization enhance its IT framework to enable an Internet of Things implementation? In his session at Internet of @ThingsExpo, James Kirkland, Chief Architect for the Internet of Things and Intelligent Systems at Red Hat, described how to revolutioniz...
Scott Jenson leads a project called The Physical Web within the Chrome team at Google. Project members are working to take the scalability and openness of the web and use it to talk to the exponentially exploding range of smart devices. Nearly every company today working on the IoT comes up with the same basic solution: use my server and you'll be fine. But if we really believe there will be trillions of these devices, that just can't scale. We need a system that is open a scalable and by using the URL as a basic building block, we open this up and get the same resilience that the web enjoys.
The Internet of Things is tied together with a thin strand that is known as time. Coincidentally, at the core of nearly all data analytics is a timestamp. When working with time series data there are a few core principles that everyone should consider, especially across datasets where time is the common boundary. In his session at Internet of @ThingsExpo, Jim Scott, Director of Enterprise Strategy & Architecture at MapR Technologies, discussed single-value, geo-spatial, and log time series data. By focusing on enterprise applications and the data center, he will use OpenTSDB as an example t...
Connected devices and the Internet of Things are getting significant momentum in 2014. In his session at Internet of @ThingsExpo, Jim Hunter, Chief Scientist & Technology Evangelist at Greenwave Systems, examined three key elements that together will drive mass adoption of the IoT before the end of 2015. The first element is the recent advent of robust open source protocols (like AllJoyn and WebRTC) that facilitate M2M communication. The second is broad availability of flexible, cost-effective storage designed to handle the massive surge in back-end data in a world where timely analytics is e...
The 3rd International Internet of @ThingsExpo, co-located with the 16th International Cloud Expo - to be held June 9-11, 2015, at the Javits Center in New York City, NY - announces that its Call for Papers is now open. The Internet of Things (IoT) is the biggest idea since the creation of the Worldwide Web more than 20 years ago.
The definition of IoT is not new, in fact it’s been around for over a decade. What has changed is the public's awareness that the technology we use on a daily basis has caught up on the vision of an always on, always connected world. If you look into the details of what comprises the IoT, you’ll see that it includes everything from cloud computing, Big Data analytics, “Things,” Web communication, applications, network, storage, etc. It is essentially including everything connected online from hardware to software, or as we like to say, it’s an Internet of many different things. The difference ...
How do APIs and IoT relate? The answer is not as simple as merely adding an API on top of a dumb device, but rather about understanding the architectural patterns for implementing an IoT fabric. There are typically two or three trends: Exposing the device to a management framework Exposing that management framework to a business centric logic Exposing that business layer and data to end users. This last trend is the IoT stack, which involves a new shift in the separation of what stuff happens, where data lives and where the interface lies. For instance, it's a mix of architectural styles ...
The security devil is always in the details of the attack: the ones you've endured, the ones you prepare yourself to fend off, and the ones that, you fear, will catch you completely unaware and defenseless. The Internet of Things (IoT) is nothing if not an endless proliferation of details. It's the vision of a world in which continuous Internet connectivity and addressability is embedded into a growing range of human artifacts, into the natural world, and even into our smartphones, appliances, and physical persons. In the IoT vision, every new "thing" - sensor, actuator, data source, data con...
P2P RTC will impact the landscape of communications, shifting from traditional telephony style communications models to OTT (Over-The-Top) cloud assisted & PaaS (Platform as a Service) communication services. The P2P shift will impact many areas of our lives, from mobile communication, human interactive web services, RTC and telephony infrastructure, user federation, security and privacy implications, business costs, and scalability. In his session at @ThingsExpo, Robin Raymond, Chief Architect at Hookflash, will walk through the shifting landscape of traditional telephone and voice services ...
An entirely new security model is needed for the Internet of Things, or is it? Can we save some old and tested controls for this new and different environment? In his session at @ThingsExpo, New York's at the Javits Center, Davi Ottenheimer, EMC Senior Director of Trust, reviewed hands-on lessons with IoT devices and reveal a new risk balance you might not expect. Davi Ottenheimer, EMC Senior Director of Trust, has more than nineteen years' experience managing global security operations and assessments, including a decade of leading incident response and digital forensics. He is co-author of t...
"Matrix is an ambitious open standard and implementation that's set up to break down the fragmentation problems that exist in IP messaging and VoIP communication," explained John Woolf, Technical Evangelist at Matrix, in this SYS-CON.tv interview at @ThingsExpo, held Nov 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA.
We are reaching the end of the beginning with WebRTC, and real systems using this technology have begun to appear. One challenge that faces every WebRTC deployment (in some form or another) is identity management. For example, if you have an existing service – possibly built on a variety of different PaaS/SaaS offerings – and you want to add real-time communications you are faced with a challenge relating to user management, authentication, authorization, and validation. Service providers will want to use their existing identities, but these will have credentials already that are (hopefully) i...
The 3rd International @ThingsExpo, co-located with the 16th International Cloud Expo - to be held June 9-11, 2015, at the Javits Center in New York City, NY - announces that it is now accepting Keynote Proposals. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devices - computers, smartphones, tablets, and sensors - connected to the Internet by 2020. This number will continue to grow at a rapid pace for the next several decades.
The Internet of Things will greatly expand the opportunities for data collection and new business models driven off of that data. In her session at @ThingsExpo, Esmeralda Swartz, CMO of MetraTech, discussed how for this to be effective you not only need to have infrastructure and operational models capable of utilizing this new phenomenon, but increasingly service providers will need to convince a skeptical public to participate. Get ready to show them the money!
The 3rd International Internet of @ThingsExpo, co-located with the 16th International Cloud Expo - to be held June 9-11, 2015, at the Javits Center in New York City, NY - announces that its Call for Papers is now open. The Internet of Things (IoT) is the biggest idea since the creation of the Worldwide Web more than 20 years ago.