5

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.

MicroMachine
  • 1,469
  • 16
  • 35
  • Does the camera maintain any catalog/index/database file on the memory card alongside all the JPEGs? – osullic Jan 08 '24 at 09:54
  • If you can physically copy the photo from the printer to the SD card, why are you not directly accessing that card? Why do you need to involve a camera in the first place? – Peter M Jan 08 '24 at 14:10
  • Have you tried removing the JFIF data completely? I know that some cameras won't recognize files that include it. Irfanview on Windows gives this tooltip with regards to JFIF. – StarGeek Jan 08 '24 at 17:12
  • @PeterM I am not sure what you mean. The only way "in" the printer is via the USB cable, when and only when it's plugged into a camera that can print from the photo viewer... the printer doesn't use a memory card – MicroMachine Jan 10 '24 at 03:39
  • @osullic I have seen a couple of mysterious files but they had very little data on them no matter how many photos were on the card and I don't think they are related (but also have no idea how to read them as they are in a proprietary format) – MicroMachine Jan 10 '24 at 03:40
  • @StarGeek Do you mean take any JPG and strip away the JFIF? If you are able to do that on a test image and send it to me I will gladly try. I do not run windows I'm on Mac and the closest I can do involves Graphic Converter but nothing I tried worked when messing around with exif. – MicroMachine Jan 10 '24 at 03:41
  • Here is your Numriser-64.jpeg file with the JFIF removed. I used this exiftool command exiftool -JFIF:All= Numriser-64.jpeg Exiftool is a command line program that can work on Mac/Linux/Windows. – StarGeek Jan 10 '24 at 06:04
  • It may still not work because that image isn't the same dimensions as the camera produces. Cameras can be finicky about showing images they didn't make. – StarGeek Jan 10 '24 at 06:05
  • @MicroMachine I may have been confused, but to me it sounded like you wanted to place images on the camera's SD card, insert the card in the camera, and use the physical connection to the printer to print the image. So I was questioning why you need to do this, and why can't you skip the camera step and just connect directly to the printer. – Peter M Jan 10 '24 at 14:28
  • @StarGeek I copied it onto the card (and renamed it to match the camera's naming convention) but the file couldn't be displayed. You may be right about the sizing of the image needing to be recognized by the camera, and that may be why the piggy back riding test of pasting the image onto a photo the camera took was working at times – MicroMachine Jan 10 '24 at 19:45
  • @PeterM Yes I am able to put the SD card in both my computer (to attempt copying new images onto it) and then in the Host camera. The printer is not designed to be used with or connected to a computer. It only works from the "print" dialog of a camera (the cable is USB on the printer's side to USB micro for the camera) – MicroMachine Jan 10 '24 at 19:48
  • 1
    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? – StarGeek Jan 11 '24 at 05:32
  • 1
    Related questions: https://photo.stackexchange.com/q/39938/9161 https://photo.stackexchange.com/q/46341/9161 – Saaru Lindestøkke Jan 17 '24 at 09:02
  • 2
    @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? – Saaru Lindestøkke Jan 17 '24 at 09:05
  • @SaaruLindestøkke I have installed the official and current Polaroid app and looked at the Bluetooth devices in iOS. Nothing showed up. I also used older devices with Bluetooth connection, such as older iPhones or PDAs, but not a single one of them could detect the printer which is why I assumed Bluetooth is damaged. The iOS Polaroid app meant to connect with it does not see it – MicroMachine Jan 19 '24 at 05:18
  • 1
    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? – Saaru Lindestøkke Jan 19 '24 at 10:45
  • @SaaruLindestøkke Thank you for the suggestion. I just tried and have added my findings in the original question (paragraphs with bold text at the beginning + one after that). The bluetooth doesn't work from an iPhone but does work from a 2011 Mac. On a 2020 MacBook pro the Printer can be added but clicking its name on the Bluetooth settings doesn't open Bluetooth file exchange and opening a JPG and trying to print doesn't allow to browse bluetooth printers – MicroMachine Jan 19 '24 at 16:20
  • @StarGeek I have tried more Bluetooth options and have altered my question to reflect findings, please discard my previous comment – MicroMachine Jan 19 '24 at 16:26
  • @MicroMachine regarding the 21860 error when sending the file over Bluetooth from your iMac, have you tried the solution from this post? – Saaru Lindestøkke Jan 19 '24 at 18:06
  • @SaaruLindestøkke the file's name is "deja-vu.png" - should I remove the extension and the period then? I'm confused by what this link suggests doing – MicroMachine Jan 19 '24 at 20:48
  • 1
    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. – Saaru Lindestøkke Jan 19 '24 at 21:37
  • @SaaruLindestøkke This comment actually worked! I ordered new paper and the bounty is expiring but if you make the sum of your comments into an answer I will gladly mark it as the best one – MicroMachine Jan 25 '24 at 06:14

2 Answers2

4

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.

James Snell
  • 9,709
  • 25
  • 39
  • 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 – MicroMachine Jan 19 '24 at 05:20
  • 1
    @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. – scottbb Jan 19 '24 at 18:16
  • @scottbb I'd love to try any of these solutions if there is a simple english guide somewhere (or maybe even a video tutorial... ) – MicroMachine Jan 19 '24 at 20:49
  • @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. – scottbb Jan 19 '24 at 23:53
  • @MicroMachine This stuff is definitely programming- or scripting-level details. Certainly, you'd be able to do it with Python and various python image manipulation packages. Also with a tool like Matlab (I've done lots of image/video stuff with Matlab in past jobs), probably other similar "techie"-level toolsets. But definitely not a usual "how-to" detail video tutorial thing. – scottbb Jan 19 '24 at 23:56
  • 1
    Speaking of ImageMagick, subsampling can be specified with -sampling-factor – Euri Pinhollow Jan 20 '24 at 10:13
0

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.

Saaru Lindestøkke
  • 8,648
  • 3
  • 39
  • 94