5
\$\begingroup\$

Context

I have a Polaroid PoGo Zink printer (link to manual) that I would like to print an image on. Unfortunately I cannot get the Bluetooth to connect succesfully to any of my devices, so I am trying the following workaround to print over USB:

  1. Get one of my digital cameras:
    • Canon IXUS 115 HS
    • Nikon S1
    • Panasonic DMC-LX7
  2. Copy the image I want to print to the camera
  3. Connect the camera to the printer over USB (using the supplied micro-USB cable) and print the image using PictBridge.

However, I am stuck on step 2 as any image I copy to the camera's SD card (e.g. this image) is shown as an "Incompatible JPEG":

enter image description here

Images that are taken with the camera, like this one, obviously display without any issue on the camera's display. I have tried in vain to understand what the differences are between JPG files that display in the camera and ones that don't.

The only "trick" that has worked was to open a camera image in Graphic Converter, rotate/resize/paste the desired image inside of the camera one and save with these settings, piggybacking on the camera photo's EXIF and file size/name. It has worked on and off, meaning something about this process is inconsistent.

Question

What should I do to my JPEG images such that they can be displayed on my digital camera after I copied them to the SD card, ultimately allowing me to print them on the Polaroid printer?

Tried so far

First off, here are the things I tried to connect over Bluetooth. All efforts failed, that's why am looking for the USB option now:

Here is a list of things I have tried to make images readable (and printable) by the camera - all have failed:

  • renaming the JPG file to match the camera's default naming convention;
  • resizing it to make sure the pixel count is even in H and W;
  • copying EXIF data back and forth between images that work and images that don't;
    • This included EXIF preview (200x200) and DCF compatible preview.
  • reducing file size to be around the same (approx 400/800Kb);
  • re-exporting as a JPG in different image softwares;
  • changing DPI;
  • displaying invisible files in the memory card to see if there is a hidden preview file;
  • editing JFIF data;

The only literature I have found online about a similar issue is here and here and it is very inconclusive and outdated.

\$\endgroup\$
22
  • 1
    \$\begingroup\$ Searching around it looks like the Polaroid PoGo Zink has bluetooth and files can be sent to the printer that way. Maybe copy the files onto your phone (assuming it has bluetooth) and try that? \$\endgroup\$
    – StarGeek
    Jan 11 at 5:32
  • 1
    \$\begingroup\$ Related questions: photo.stackexchange.com/q/39938/9161 photo.stackexchange.com/q/46341/9161 \$\endgroup\$ Jan 17 at 9:02
  • 2
    \$\begingroup\$ @MicroMachine troubleshooting printers has always been a dark art, compliments for trying! When you say "whose Bluetooth feature is damaged", can you perhaps indicate how you found it's damaged? I just want to be sure it's not some driver/compatibility issue that might be easier to resolve than to get the JPEG working on the camera. Also, what happens when you try to connect it to your PC using an USB to (not micro) USB cable? \$\endgroup\$ Jan 17 at 9:05
  • 1
    \$\begingroup\$ And when you attempt a Bluetooth connection from you computer (your original goal)? And is there perhaps an action needed on the printer (e.g. Long pressing a button) before Bluetooth pairing mode gets activated? \$\endgroup\$ Jan 19 at 10:45
  • 1
    \$\begingroup\$ The filename in this case refers to the part without extension. Try renaming it to dejavu.png and then try the sending it via the Bluetooth File Exchange again as you did on your iMac. \$\endgroup\$ Jan 19 at 21:37

2 Answers 2

4
+100
\$\begingroup\$

jpeg is a container format like tiff, and the mpeg formats so there are various options which probably aren't implemented in your camera firmware.

JFIF & EXIF metadata types are incompatible with each other - a file can have one or the other.

Image encoding methods have evolved so the jpeg "standard" as used by old codecs and devices may lack features used in newer software. Progressive encoding was a later addition to enhance web use for example.

I did a bit of sleuthing with exiftool on the images you supplied and these are what I'm seeing as the most relevant information from the camera output.

Exif Byte Order                 : Little-endian (Intel, II)
...
Compression                     : JPEG (old-style)
...
Image Width                     : 1600
Image Height                    : 1064
Encoding Process                : Baseline DCT, 
Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:2 (2 1)

In your failing file...

Exif Byte Order                 : Big-endian (Motorola, MM)
Image Width                     : 633
Image Height                    : 525
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)

The first of these will be pretty good at tripping up a decoder that is probably only built to decode files it created, and image height/widths that aren't a multiple of 8 can be a known issue for older devices.

ImageMagick is probably the tool you need here - it's a command line tool where you can be quite detailed in how you want the file to be encoded, you'll need to look through the docs to set the right options. Or you can get exiftool and play around with all the encoding options in your software until you get it matched up.

\$\endgroup\$
6
  • \$\begingroup\$ Thank you James, have you been able to copy the data from one of the working images onto one of the failing images so that I could try putting it on the card and see if it works? I am beginner level with command line but if the solution works I will roll up my sleeves and get in there. I wish there was a simple tool with a GUI so I could try myself quickly \$\endgroup\$ Jan 19 at 5:20
  • 1
    \$\begingroup\$ @MicroMachine I think what James is saying is that simply "copying the data" between images won't work. It's not an Exif data problem (at least, partially); it's the actual image data itself (and its encoding) that is problematic. You're going to need to figure out how to resample your failing image file to YCbCr 4:2:2, possibly crop it to 632×520 (multiples of 8), and write the data into a little-endian byte order. \$\endgroup\$
    – scottbb
    Jan 19 at 18:16
  • \$\begingroup\$ @scottbb I'd love to try any of these solutions if there is a simple english guide somewhere (or maybe even a video tutorial... ) \$\endgroup\$ Jan 19 at 20:49
  • \$\begingroup\$ @MicroMachine Unfortunately, other than cropping to a multiple of 8 pixels, this isn't simple stuff. Regarding little-endian vs. big-endian: that's something that image software can easily read and handle, but rarely present that as an option to the user, because it's such a level of "don't care" 99% of the time. But none of your cameras should be concerned about that distinction, because they're not general-purpose image readers, they're only concerned about reading and displaying images they created, in whatever byte order. Similarly with YCrCb chroma sampling. \$\endgroup\$
    – scottbb
    Jan 19 at 23:53
  • 1
    \$\begingroup\$ Speaking of ImageMagick, subsampling can be specified with -sampling-factor \$\endgroup\$ Jan 20 at 10:13
0
\$\begingroup\$

To start of: your actual question seems to be about printing an image on a Polaroid Pogo printer. Getting an image shown on the camera was just a workaround because you could not get the Bluetooth working.

Later on you found the steps to connect the printer over Bluetooth to your iMac (following roughly these steps, but got stuck in the file transfer.
The key is to ensure that the filename (that's the part without the file extension) of the file you want to print over Bluetooth does not contain a special character, i.e. only consists of letters and numbers.

E.g., instead of sending a file deja-vu.png try renaming it to dejavu.png.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.