How to organize images with custom tags?

tubbadu@lemmy.kde.social to Linux@lemmy.ml – 41 points –

Hello! I have a bunch of photos all mixed together, and I'd like to sort them out in order to better find the ones I'm searching for without loosing half an hour. I was thinking of adding custom tags to each image (manually), like "my dog", "trip to Paris", "my friend X" etc. I'd like this tag system to be portable, filesystem-indipendent. What are my best bet?

On dolphin if I click on a file I can add a custom tag. Where is the tag stored? in the file or in some plasma configuration file, so that moving the file on my phone would loose the tags?

I searched the web but probably I don't really know how to call this, because all I found was a bunch of 11 years old threads or video tag editor (I need to do this with images)

thanks in advance!

EDIT: I have a HUGE amount of pictures to sort manually, so I'd need a GUI designed to be really quick. It probably does not exist, or if it does it won't satisfy me, so I'd probably write my own simple frontend for it, so the ideal would be a CLI tool or something QT-compatible

15

Think you can do this with digikam but I need to double check

Edit: straight from their docs. Also they state "Tags are stored in a database for fast access, and, the applied tags are written into IPTC data fields of the image (at least for JPEG). So you can use your tags with other programs or, in case of loss of that data in the database, the tags will be re-imported when the image is noticed by digiKam." I would do a few picture first as a test to see if it works to your liking

Hmm, I've never seen Digikam before, but it looks pretty handy.

The only option I would see to add tags to files without using some sort of picture management program that supports tags or an SQL database would be to just add raw text data to images. The image still works as eg. "IEND.B`."/"0x49454E44AE426082" marks the end of png data. Everything afterwards is ignored. You can test that by writing some text into a file (echo "Hello World!" > test.txt) and cat'ing the image + the text, eg. cat image.png test.txt > new_image.png. new_image.png will still contain the original image. Note that editing/exporting in editors will probably delete that data. Still, it could be used to add tags in eg. Json/CSV, and also extract them. That would require some work in coding, but work on any filesystem and system without additional files.

This sounds like a fun hobby project, bookmarking this for later

Edit: if I will make a tool for this I will update this comment.

seems interesting, isn't there something that already uses this?

Probably not, considering it's a pretty janky solution prone to being broken by legitimate actions like editing it. Most are also fine with just using a database, maybe even selfhosting it.

Digikam is powerful and can do this no problem. Digikam can store in its own database and (if you choose) at the same time in the image itself in case your digikam database ever gets corrupted.

I recommend embedding something like a checksum in the filenames to prevent duplicates.

XnView has tag and filter feature.

thanks for the answer! how does it store the data? Will it loose it if I transfer it to my phone?

That I do not know. You have to read their website for information.

There's an option under Settings->Metadata to have the categories written to EXIF data in the image file itself.

I just tested and the categories show up in exiftools.

I use XnView MP to view and organize my photos.

Fairly certain that you can encode tags into the photo's metadata.