Can't rotate


I have a docker-based installation in a home server, it works great. I have it set up so that PS copies and organizes everything in its own library. Today I tried rotating photos, but it can’t, giving me this message:

Well, darn, that didn't work
Error creating file: <redacted>IMG_4922.HEIC.xmp - <redacted>IMG_4922.HEIC.xmp

it looks like it’s trying to create the xmp file in the original folder of the photo, instead of the one in PS library, and that’s why it doesn’t have permissions.

Is that expected? I thought that by letting PS organize and copy photos in its own library, all the operations on the photos would also happen there. Am I mistaken?

PhotoStructure tries to add a sidecar with the new orientation data to all variations of the current asset, including any source directories.

I figured if I’m bothering to fix the orientation, I should try to fix that file everywhere.

If PhotoStructure can’t save that sidecar on a read-only volume, I guess it should complain, but let the operation continue? Or maybe not even complain?

Note that this behavior is changing a bit in the next release (v2.1): I found that in my own personal library that most other software doesn’t look in the sidecar for orientation information, so that information was ignored. Because of that, I added a new sidecarTagBlocklist setting. Here’s the description for that setting:

Many applications don’t read metadata from sidecars, which can make some tags, like Orientation or Rating, not seem to work properly in other applications. This setting is ignored if writeMetadataToSidecarsIfImage, writeMetadataToSidecarsIfVideo, and writeMetadataToSidecarsIfSidecarExists are all set to false. Defaults to ["Orientation"].

So when you rotate images in v2.1+, the original image will have new Orientation metadata written directly to it. Other metadata will be stored in a sidecar, though.

Also note: if overwriteOriginal is kept as the default value of false, the original file, say, image.jpg, will be first copied into the same directory under the name image_original.jpg before editing it, so if something goes wrong, we can still revert to the original file.

Ah, and in case you missed it, v0.8.1 (released back in 2020) added consistent orientation:

:sparkles: :arrows_counterclockwise: More robust rotation support

When you rotate your photos or videos with PhotoStructure, it now applies image content matching to ensure all asset file variants for the asset you rotated are in the same visual orientation.

Note that rotation is a non-destructive operation by writing a sidecar with the orientation next to your original. This behavior can be changed to edit in place with an advanced library setting.

(I believe this is unique to PhotoStructure: I’ve never heard any other software doing this!)