Canon Image Transfer (Looooong whine and short resolution)
Nikolai
Registered Users Posts: 19,035 Major grins
Since I moved to the Dark Side and started enjoying viciously unforgiving world of dSLRs with my new Canon 20D,
I realized that, apart from many other comfortable things, my 828 provided me with one convenient service - fast, native, easy-to-use USB file I/O interface.
Plug the cable in, turn the camera on - and it simply shows as an additional removable media in your drives list. The good thing was - it actually WAS a drive. Any app (including Windows Explorer, of course) simply sees it a a drive, and as such, provides all the standard file i/o operations.
Then 20D happened...
After taking a few shots I plugged the supplied cable and turned 20D on, naively hoping to download the shots to my HDD and share them with the Whole Wide World. Well, it didn't happen. It asked for the driver, install, yada-yada..
Hence my Very First Pics were downloaded via card reader..:-(
Later I installed the provided software. Now I could download pictures via USB cable, but.. my PC saw the camera as some weird device (more on that later), the 3d party apps didn't see it at all. No more generic file copy for you! I had to use this device interface only (and it sucks - thumbnail view does not even provide the file names!). But the biggest annoyance was the 'folders-by-the hundred'.
Canon insisted on splitting the pictures into folders, each one containing no more than a hundred. Taking my shooting habit into consideration and new fancy continuous drive with zero shutter lag that was Absolutely Not Appropriate. I have my own photo cataloguing system and I didn't need no stupid extra 101, 102, etc. folders.
So I was continuing to use the card reader, and reading the manual.
Some light in the end of the tunnel showed when I realized that there are TWO modes in image transfer. Default one is called Normal, but there was a second one, called PTP. It stands for the Picture Transfer Protocol and apparently works only with XP SP1 or better (which was not the problem at all, since all the PCs I'm dealing with have SP2 at least:-).
It had two major advantages (for me, that is).
First - no need to install any proprietary Canon software. Plug in - wait a bit until windows recognizes the device - and you're in.
Second - No Stupid Folders! Yay! I was about to put my card reader back to bag.
Unfortunately - this new (PTP) device still WAS NOT a regular drive. Conventional file based software still didn't want to do anything with it. It sill provided some proprietary interface, and it still popped up the same ugly device selection dialog each time I connected the camera.
Labor day weekend came and I decided to see if there is anything I can do to make my life with 20D a bit easier on the image transfer side.
I recalled some "WIA" word when installing the software and decided to find out what it is. Google is my friend, as well as MSDN, and soon I learned a few important things.
WIA stands for Windows Image Acquisition. It's a relatively new protocol, which is supposed to be a tad better than the old good TWAIN (you know MS always does that to any open standards:-), but basically serves the same purpose - allow hardware manufacturers to create device drivers that would work nicely with Windows.
MSDN turned out to have a few (hundreds:-) pages devoted to it. This was promising. I opened Delphi...
A bit later I was reading the contents of the 20D connected via cable. I was activating hidden (and not so hidden) dialogs. I registered my own app as the "canon handler" and could even unregister it back..
After few more hours I decided to dump the idea. The primary reason - it was still slow! Much slower than using a card reader (I can go into specific details why, but that would be TOO techy..). The time I'd spent with connecting the reader and shuffling the card in and out (especially if there are several cards involved) would be eaten by large with the slowness of the PTP/WIA based transfer, even if I had finally managed to deliver the files directly where I wanted them..
----
I learned one little nice thing, though. It is actually possible to deliver the files from the 20D directly via USB cable APPROXIMATELY where you want them with no programming efforts at all - and even avoid the stupid extra "hundreds" folders!:clap
Here's what I ended up with.
1) Have you camera unplugged from PC
2) Turn your camera on
3) Menu, settings, Communication: set to PTP
4) Exit the menu
5) Connect the camera to PC via USB cable
6) If the dialog starts up - cancel it.
7) Open Explorer. Locate the Canon EOS 20D "drive". Right-mouse button - select Properties from the context menu. Go to the dialog's second Events tab, you'll see something like this:
As you can see - you can actually control a little bit what happens "on connection".
What I did: I prepared a special "scratch" folder in my Pictures folder, called it "CanonPad", and told the WIA to always dump the pictures there, by day (you can uncheck "by day" option if you don't need it).
So now if I'm not in a hurry and don't want to hassle with the reader - I can simply connect the camera, it will automatically transfer all the images to my CanonPad - and after that I already can do whatever I want with them, since they are all on my HDD. And no extra folders!
Note: if you do this in Normal, non-PTP mode, you'll end up with those stupid folders anyway.
You can also so something else in this dialog - for instance disable the connection dialog at all. Later you can always change it via same properties dialog...
PS
As I said above, I dumped the idea of creating special app for that, since the approach above covered 95% of what I needed.
But if *you* think you may need something special from WIA - my custom programming service is available:-)
HTH
I realized that, apart from many other comfortable things, my 828 provided me with one convenient service - fast, native, easy-to-use USB file I/O interface.
Plug the cable in, turn the camera on - and it simply shows as an additional removable media in your drives list. The good thing was - it actually WAS a drive. Any app (including Windows Explorer, of course) simply sees it a a drive, and as such, provides all the standard file i/o operations.
Then 20D happened...
After taking a few shots I plugged the supplied cable and turned 20D on, naively hoping to download the shots to my HDD and share them with the Whole Wide World. Well, it didn't happen. It asked for the driver, install, yada-yada..
Hence my Very First Pics were downloaded via card reader..:-(
Later I installed the provided software. Now I could download pictures via USB cable, but.. my PC saw the camera as some weird device (more on that later), the 3d party apps didn't see it at all. No more generic file copy for you! I had to use this device interface only (and it sucks - thumbnail view does not even provide the file names!). But the biggest annoyance was the 'folders-by-the hundred'.
Canon insisted on splitting the pictures into folders, each one containing no more than a hundred. Taking my shooting habit into consideration and new fancy continuous drive with zero shutter lag that was Absolutely Not Appropriate. I have my own photo cataloguing system and I didn't need no stupid extra 101, 102, etc. folders.
So I was continuing to use the card reader, and reading the manual.
Some light in the end of the tunnel showed when I realized that there are TWO modes in image transfer. Default one is called Normal, but there was a second one, called PTP. It stands for the Picture Transfer Protocol and apparently works only with XP SP1 or better (which was not the problem at all, since all the PCs I'm dealing with have SP2 at least:-).
It had two major advantages (for me, that is).
First - no need to install any proprietary Canon software. Plug in - wait a bit until windows recognizes the device - and you're in.
Second - No Stupid Folders! Yay! I was about to put my card reader back to bag.
Unfortunately - this new (PTP) device still WAS NOT a regular drive. Conventional file based software still didn't want to do anything with it. It sill provided some proprietary interface, and it still popped up the same ugly device selection dialog each time I connected the camera.
Labor day weekend came and I decided to see if there is anything I can do to make my life with 20D a bit easier on the image transfer side.
I recalled some "WIA" word when installing the software and decided to find out what it is. Google is my friend, as well as MSDN, and soon I learned a few important things.
WIA stands for Windows Image Acquisition. It's a relatively new protocol, which is supposed to be a tad better than the old good TWAIN (you know MS always does that to any open standards:-), but basically serves the same purpose - allow hardware manufacturers to create device drivers that would work nicely with Windows.
MSDN turned out to have a few (hundreds:-) pages devoted to it. This was promising. I opened Delphi...
A bit later I was reading the contents of the 20D connected via cable. I was activating hidden (and not so hidden) dialogs. I registered my own app as the "canon handler" and could even unregister it back..
After few more hours I decided to dump the idea. The primary reason - it was still slow! Much slower than using a card reader (I can go into specific details why, but that would be TOO techy..). The time I'd spent with connecting the reader and shuffling the card in and out (especially if there are several cards involved) would be eaten by large with the slowness of the PTP/WIA based transfer, even if I had finally managed to deliver the files directly where I wanted them..
----
I learned one little nice thing, though. It is actually possible to deliver the files from the 20D directly via USB cable APPROXIMATELY where you want them with no programming efforts at all - and even avoid the stupid extra "hundreds" folders!:clap
Here's what I ended up with.
1) Have you camera unplugged from PC
2) Turn your camera on
3) Menu, settings, Communication: set to PTP
4) Exit the menu
5) Connect the camera to PC via USB cable
6) If the dialog starts up - cancel it.
7) Open Explorer. Locate the Canon EOS 20D "drive". Right-mouse button - select Properties from the context menu. Go to the dialog's second Events tab, you'll see something like this:
As you can see - you can actually control a little bit what happens "on connection".
What I did: I prepared a special "scratch" folder in my Pictures folder, called it "CanonPad", and told the WIA to always dump the pictures there, by day (you can uncheck "by day" option if you don't need it).
So now if I'm not in a hurry and don't want to hassle with the reader - I can simply connect the camera, it will automatically transfer all the images to my CanonPad - and after that I already can do whatever I want with them, since they are all on my HDD. And no extra folders!
Note: if you do this in Normal, non-PTP mode, you'll end up with those stupid folders anyway.
You can also so something else in this dialog - for instance disable the connection dialog at all. Later you can always change it via same properties dialog...
PS
As I said above, I dumped the idea of creating special app for that, since the approach above covered 95% of what I needed.
But if *you* think you may need something special from WIA - my custom programming service is available:-)
HTH
"May the f/stop be with you!"
0
Comments
I just press the button and the camera goes CLICK. :dunno
Canon: gripped 20d and 30d, 10-22 3.5-4.5, 17-55 IS, 50mm f1.8, 70-200L IS, 85mm f1.8, 420ex
sigma: 10-20 4-5.6 (for sale), 24-70 2.8 (for sale), 120-300 2.8
Dgrin FAQ | Me | Workshops
I honestly don't know..
No s/w to install?
It just shows as the removeable media with full i/o support?
What did Canon do to please you Mac-lovers?:):
I installed nothing.
Dgrin FAQ | Me | Workshops
Dgrin FAQ | Me | Workshops
We (on wintel) also have similar tool, straight from redmond. Called Picture Acquisition Wizard or something to that extent. It has one major flaw though (at least I don't know how to fix it ) - it does not preserve the original file names..:cry
So again, it's all workable, but I LOVED the fact that 828 operated simply as a drive, with no need to fancy wizards..
But me this, please: if you cancel that dialog of yours - will you see your 20D in, how you call this thingie, Finder? I mean - except that dialog, is there any other way to get to the content of card still hidden inside the camera?
You know how to make me feel special:-):D
Well, no. The card shows up as a volume only with a card reader or in my PCMCIA slot. This app, Image Capture is built-in to the OS. It does not change the filenames, and I can view it in thumbnail view (attached), although the thumbs don't show for RAW (if you drag the file to the desktop, the thumb DOES show up, however).
Dgrin FAQ | Me | Workshops
Very similar behaviour.
Thanks for the details!
Actually, I'm continuing playing with WIA:): .
Got it working all the way down to writing file to the hard drive
So now I only have to provide some decent UI, remember what was the last image processed, provide support for different target folders and rules - you know, the usual business end user stuff:-)
Any time you are gonna be up for another beer? Especially considering another TO guy just joined dgrin today:-)
Cheers!
What is it that you're trying to accomplish by writing software? I guess that's why I'm not a programmer....
Sure. Love beer. All kinds. Wanna get an Oatmeal Stout at BJ's, I think. Just give me a call.
Dgrin FAQ | Me | Workshops
With this one - the following..
I store images in several paces, on several computers. Quite often I find myself in a situation when some images are already saved to computer A (home), but not to a computer B (office), then some new images are taken, and I'm currently at computer B.
Here I can save all the images, but I can't erase them all yet, since the most recent ones should be delivered to A yet. As you can figure, on my way to A some new shooting happens:-) So now I'm at A and need to get only those which I didn't save yet, and then eventually get back to B and save those which are "new" to B, too.
It does not always get that complicated, but it happens often enough to inflict inconvenience.
So what I am trying to achieve in this particular case is to basically have my computer to "remember" what I have already downloaded, so even if I bring the camera with the card still full of images it would automatically pick up only "new" ones.
Once I reach the sync state, of course, I can safely "erase all". But this is "in between" situation that drives me nuts sometimes. Erasing images one-by-one is not fun if you have hundreds of them.. Comparing what you have on this particular drive and what not is also a major drag.
Another goal of mine is that I almost always copy images in two different places even on the same machine. One place is for "originals" only, no editing happens there. Those are usually stored simply in date-based folders (monthly). The other is for "albums", where I later organize them by a particular event/theme.
So I would like to have my software automatically saving images in both (or however many) places, without me telling it each time what to do.
And the last, but not least, reason - because I can:-)
Well, looks like you do have a "labor" day today:-) Next time then!
Cheers!
Portfolio • Workshops • Facebook • Twitter
I know, I know..:-)
But then.. I would not learn WIA protocol:-):D
Cheers!
I have all my photos on a small, self-powered firewire drive. It's actually the original drive from my Powerbook. When I upgraded the drive I bought an enclosure. Now I carry that drive with me in my camera bag, I always have my pics, wherever I want to edit them. I back up the entire drive in a couple of places, all set.
My life is complicated enough.
Dgrin FAQ | Me | Workshops
Prolly because I'm a programmer, I don't trust tekh-M-ology (you watch Aili G show, aint'ya:-). So I keep my pictures in several places... Especially after I almost lost them all in 1997 due to a simple programming mistake.. I had some blowouts before (like a one man-month, well, I was drunk, it worked as a general excuse in Russia) but never before had lost two man-years..
Everybody's life is a complicated one...Trust me, you don't want to know what complications we had in ex-USSR..:-):):
Cheers, homie!
After another hour of fruitless attempts to obtain RAW files via WIA (jpegs are transferred just fine), did some search. In 5 minutes some fellow pointed me to a Canon's own readme file (located on your hard drive if you installed the EOS software), where it says in plain English: So they simply could not create a decent WIA driver.. Arrrrgh. And they even had guts to call this a "caution", whereas it's a major flaw..
OK, card reader, I guess I was ignoring you for too long..:-)