Does not save Canon stream edits

I was able to discover some files being written with Canon’s LensType field. I know this to be a generic lens in my case, not the actual lens used when taking the images (I’m using a lens adapter that necessarily lies to the camera.) And for now I’m using Apple’s Photos, which is ignoring the usual EXIF stream here and/or giving precedence to the Canon stream. So edits to EXIF, XMP etc have no functional effect in this case.

And so I added Canon:LensType to MetaImage’s range of options via the Preferences. Now when I open these images in MetaImage I can see the generic lens info revealed, and choose another one from the list OR paste from the clipboard (my preference, since the lens isn’t in the list).

I save the images and MetaImage does so. Clicking around within MetaImage it appears the edit was successful. Close out the selection and reopen them, and it’s revealed the save never occurred.

Mind you, I’m not even trying to edit via the Photos plugin at this point. I am just opening the images in MetaImage for editing, saving, and importation into Photos later.

Thank you very much for contacting me. It seems that MetaImage fails to set your new Canon:LensType. Most of the time, the application does not write metadata if it detects that the change may corrupt your file.

Maker tags are very special tags. If the lens model is not on the list, it means that Canon does not officially support your lens type. That is why I encourage you to set EXIF lens tags instead of Canon lens tags.

Is it possible to send me the original image as well as the exact camera model name? (hi@neededapps.com). The image file will help me to get more information about the bug. I will check where the application fails.

Thanks Jeremy,

Yes I’d love to just edit EXIF/XMP or anything else the eventual rendering software recognizes, which is why I was surprised macOS’ Photos ignored my EXIF et al edits and just read the Canon stream for the lens instead. That’s as much an Apple design choice or their bug as anything else.

In the meantime I’ll send you a sample file as requested.

Hi there,

I took a little time to reply, but I may have a solution.

The Canon:LensType tag is defined as an enumeration of values. So you can’t put the value you want. Photos reads Canon data to find out the type of lens. The solution is, therefore, to remove the value of this tag. You cannot delete the Canon stream from a CR2 file. If you do, your file will be detected as corrupted. The solution is to put the value n / a: 65535 for the Canon:LensType tag. Then you can enter the value you want in the EXIF:Lens and EXIF:LensModel fields. Photos will display them as lens information.

I hope it helps,

Thank you Jeremy. for taking the time to dig into this. I will look at this on the weekend when I have time. I believe the quoted part is the key because I had indeed attempted to just delete the value and it wasn’t “holding” (saving) … be that as it may, I do recall seeing a n/a (i.e. not applicable) value I hadn’t yet tried.

Half the battle, as always, is learning what the final rendering software considers to display if the primary stream or field is “blank.”

–> Wondering if you might find a way to have MetaImage tell users that no-value isn’t a viable option but that n/a is … ? As I said, I had received no error message about this circumstance.

I added a note to my TODO list about this kind of case. I’ll see what I can do.