Disclaimer: I understand there's a lot of things I'll need to learn and maybe some thinks I may need to implement myself with GDnative I would appreciate if you could tell me what I should I search for and what can I do from godot as it is (without GDnative or modding the engine) and what do you think about making this software with gdscript instead of C# or C++ would it be too slow?.

Problem #1: The software lets you add multiple tags for images stored on your drives and the ability to search for groups of tags. The searching tags seems easy but how do I read and write the metadata? I know about xmp, exif but not how they actually work can I write and read these from godot or do I need to implement a way to do this myself? Is using a json or xml file saving the images path and their tags way too slow?

Problem #2: It would be nice to have the program on the background and being able to set tags to images you download, I guess I would need to make a plugin for firefox that communicates with the program, but displaying a panel with the tags on Windows would require serious additions to the engine, right?

Problem #3: (Most likely same as #2) Implementing a context menu for adding tags to images from the Windows explorer Thanks.

I know about xmp, exif but not how they actually work can I write and read these from godot or do I need to implement a way to do this myself?

Godot doesn't have a built-in way to edit image metadata. There are 3 ways to achieve this:

  • Create a C++ module to interface with a third-party library, and recompile the editor and all export template binaries you wish to use.
  • Create a GDNative library to interface with a third-party library that can edit image metadata. In this case, you don't need to recompile the editor and export template binaries you wish to use.
  • Call a program that modifies image metadata using OS.execute(). This is the easiest approach, but it's also the most fragile. You'll also have to distribute the program in question with your project.

It would be nice to have the program on the background and being able to set tags to images you download, I guess I would need to make a plugin for firefox that communicates with the program, but displaying a panel with the tags on Windows would require serious additions to the engine, right?

Displaying additional information in Windows Explorer requires developing a shell extension, which is definitely outside Godot's scope.

Implementing a context menu for adding tags to images from the Windows explorer

Adding context menu options can be done by editing the registry. Godot itself can't edit the registry, but you can call regedit yourself using OS.execute(). Note that it will prompt the user to apply changes every time you call it.

Thanks @Calinou . now I know what I need to read about.

If I ditch all the extras and try to use a json or xml file saving the path to the images and their "metadata" and parsing the file to read and manage the images, would it be too slow?. Its would be a software for personal use but maybe it could be worth to learn how to implement the library in C++ Idk how complicated that is.

2 years later