The problem with RAW is…
I’m a complete amateur to DSLR photography. But I’m keen to learn, and so I’ve been trying to set myself tasks for learning bits and pieces of new information over time. Over the past week, I’ve been trying to find out what RAW is, and how I can create a decent workflow using it. This post is more of a reminder for me, but I hope that some other people can find it useful as well.
So, what is RAW?
Simply put, a RAW photograph allows you to store the unaltered, “raw” output of the sensor of the camera. When I first got the EOS-350D, like a lot of people I mainly ignored the fact that I could shoot in RAW. I didn’t see the point; mainly I justified this by saying “ooh, I can get 650 photos on the memory card if I shoot with JPEG!”
What’s the difference? Well, when shooting with JPEG, your camera will take the sensor output, apply the white balance to the image and then encode the photo using the JPEG compression algorithm. The critical thing to note is that this process is irreversible, and makes further post-processing more difficult down the road.
When shooting RAW, the white balance information is stored in the file, but not applied to the image itself. So, if you shoot with auto white-balance and decide down the line that you should have applied a daylight setting instead, this isn’t a problem.
People that know me might know that I can get really very obsessive about having things like photographs organised, whilst still retaining all of the data that was embedded with the image. I find it very difficult to even throw away bad photos just in case I do lose something. So clearly, I’m going to want to shoot RAW - just in case.
At this point, I ran into a few obstacles. Firstly, there is no set standard for RAW images (more on this later). Instead, the manufacturers all have their own different versions of what they deem to be “raw”. Since I own an EOS-350D, the raw of choice is the CR2 file, so I’m only going to talk about this from now on. Also, the CR2 format is closed but has been reverse engineered to a point.
Secondly, I need to organise my photos. Up until this point, I’d been using the Canon ZoomBrowser software to retrieve my images from the camera and store them locally. This stores the pictures in folder such as 2006_08_02. I have a big problem remembering dates, so clearly I need to be able to re-organise into descriptive names as well as retaining some sort of chronological order.
After some debating, I eventually created a list of objectives.
- Find (or write) a piece of software which could be used to grab all of the photos off of a memory card reader. Basically scan it for JPEGs and Canon’s CR2 RAW format.
- Find a program that’s actually capable of organising photos in a sensible fashion and something that I find easy to use.
- Use some mythical beast to manipulate the CR2’s and export them as JPEGs.
- Eventually find some way of integrating the whole lot into WordPress in a very easy and doable fashion.
At this point, I had a big decision to make: Linux, or Windows?
As you all know, I think Linux is amazing. There are some very good tools out there for organising photos and dealing with RAW. For completeness and future reference, I’ve got a small list.
- dcraw: a command line utility for converting pretty much every RAW format under the sun.
- ufraw: a GIMP plugin centred designed to utilize dcraw for importing and post-processing RAW files.
- F-Spot: a nice Mono GTK application for organising photos by tags, similar to Photoshop Elements.
- exiftool: a Perl module for extracting EXIF/XMP/etc information from photos.
The problem is, they just don’t fit together in a way that I’m comfortable with. Everything takes absolutely ages, and when I have 3,000 photos waiting to be collected together and organised, time is of the essence. So, unfortunately, Linux is out for the time being.
This (obviously) leaves me with Windows. Interestingly enough, objective 3 is by far the easiest decision. Photoshop CS2 with the Camera Raw plugin absolutely rocks. It’s comprehensive enough so that I can alter the stuff that I want to play with, but not so complex that it makes me bang my head off of the desk.
After a couple of days of searching, I found Picasa for objective 2. It’s an amazing application with a lot of potential, and naturally it’s straight from the guys at Google. I can set it up to sit there and watch the My Pictures folder, and since it supports a variety of RAW formats, an awful lot of time gets saved. Also, since I can organize by folder, I solve the problem of crappy folder names.
The one problem is that whilst it works, Picasa doesn’t seem to apply any sort of colour space to the image, so everything turns out dark. But hopefully this should get better in later versions.
This basically left me with objective 1, since number 4 is going to be solved in a couple of days time. By a complete stroke of genius, I ran across this blog by an author I don’t recognise. He uses both the same camera (and so has the CR2 problem) and uses Picasa for general organisation. There were two posts in particular that caught my eye.
Firstly, this post talks a lot about DNG, the open-specification format for RAW images from Adobe. As the other post is quite detailed, I’ll not talk about it very much. The second post talks about automated download from a memory card. Both of these things pretty much solve my woes with the CR2 images and also a method of grabbing them from the card. Basically:
- Have a program sitting in the background.
- When it’s activated, select the folder to scan from and upload to.
- Filter out CR2 images and process with the Adobe DNG converter.
- Verify conversion was okay.
- Copy image to folder by date created timestamp (can’t be bothered with parsing EXIF).
- Empty the card.
So this is the new project for tomorrow. I’m writing this application in C#, so we’ll see how it goes. My workflow then becomes:
- Take photos.
- Grab card out of camera, slap into the machine and hit the big go button.
- Launch up Picasa, which automagically scans and adds the photos.
- Remove the crap photos.
- Post-process if necessary.
Looks like it’s going to be a fun day!













22/6/2006 6:58 am
I’m looking for a way to access CR2 data using C#. Did you get this plan to work?
22/4/2006 4:16 pm
Hi Carlo,
At the moment this is still a work ‘in progress’. Potentially the concept is pretty simple, it’s just that I haven’t had the time (or, indeed, the motivation) to actually come up with the code. dcraw is pretty slow when all’s said and done.
19/5/2006 5:19 am
i’m curious if you’ve gotten this to work. I’m trying to get something similar, also using C# to work and, while I’ve been able to get parts of the Canon SDK working, I’m not able to actually display a CR2 image within my application. If you’ve managed to get this working, could you let me know how?
Thanks!
Jeff
2/10/2006 10:16 pm
Hi Jeff,
Sorry in my long, long delay to you getting a reply. It’s been a busy few weeks. I’m going to make a blog entry shortly, maybe this will answer some of your question, but I suspect not.
2/11/2006 11:27 pm
[...] My grand plan outlined in the previous entry never really materialized for reasons of time. However, I do have a fairly stable workflow set up now with my RAW photos, so I thought I’d at least try to document that here, in case anybody else was interested in the slightest. [...]
2/2/2007 2:07 am
I forgot all about this. Canon released it’s SDK with some code in C#.