darktable-org / darktable

darktable is an open source photography workflow application and raw developer
https://www.darktable.org
GNU General Public License v3.0
9.81k stars 1.14k forks source link

Allow for multiple different export options, with filtering and more #17241

Closed MarcBresson closed 3 months ago

MarcBresson commented 3 months ago

Is your feature request related to a problem? Please describe. I'm new to darktable, and I'm coming from lightroom. I had a few issues when trying to export my pictures. It must be noted that not everyone of my problem has a solution in lightroom.

Describe the solution you'd like

Alternatives

Additional context

Here is a quick skecth of how it owuld look like. In blue are the new proposed elements. In white is what already exists today. Suggestion darktable

ralfbrown commented 3 months ago

The second and third points together are going to create a UI nightmare.... Probably easier for a user to select a subset of images and set their export options, then start an export and select a new subset and queue up that export (since exports run in the background and you can have multiple exports queued up).

MarcBresson commented 3 months ago

we could have a checkbox somewhere "allow for multiple export configurations" so the UI stays basic by default, but users can enable this behaviour if they need to

MarcBresson commented 3 months ago

should I create a separate feature request for the first point?

victoryforce commented 3 months ago
  • jpeg_xl is cool for the space saving, but it is not highly compatible, so having both can come in handy

The very idea that we want to save space but end up settling on an option that will require almost twice as much space escapes me. In libjxl, such a desire was already foreseen and supported:

Quoting official JPEG XL site: Existing JPEG images can be converted to JPEG XL in a 100% reversible, lossless way. The resulting JPEG XL files will be about 20% smaller and can be converted back to the bit-exact original JPEG file.

From their GitHub repo README: Specifically for JPEG files, the default cjxl behavior is to apply lossless recompression and the default djxl behavior is to reconstruct the original JPEG file (when the extension of the output file is .jpg).

So in this case there is no need to export to two different formats.

Moreover, such an export is not optimal even in an imaginary situation where the need to have the result in two different formats would make sense. Export is an application of processing algorithms to obtain a resulting output file. These algorithms can be very computationally expensive. Instead of repeating them several times, in many cases it would be more reasonable, for example, to transcode the result to another format or downscale it afterwards.

  • add the possibility to have as many export as we want, all with different options
  • add the possibility to filter what picture we want to export for each different export configuration

This is what presets in modules for. You can create presets for the export module with the different options you need. You choose one preset, export some images. Then select a different set of images, choose another preset, press the "export" button. Simple. fast, efficient. No need to create a UI nightmare.

  • Photos we like more (rated 5 stars) could be exported in higher quality jpeg.

Yes, why not? Choose preset made for highest quality jpeg export, select 5 stars images, export them.

MarcBresson commented 3 months ago

The very idea that we want to save space but end up settling on an option that will require almost twice as much space escapes me.

have you ever tried sharing jxl files with friends? It is outright impossible. jpeg is to ease the transition. I, for my own usage, would use jxl to familiarize me with the format, while i could still share my pic with my friends

I get your second point tho. I guess an internal raw representation is computed before formatting a picture to jpeg, or whatever format. This raw representation could be cached to be used by the other export options (like piwigo, or something else).

This is what presets in modules for. You can create presets for the export module with the different options you need. You choose one preset, export some images. Then select a different set of images, choose another preset, press the "export" button. Simple. fast, efficient.

Yes, why not? Choose preset made for highest quality jpeg export, select 5 stars images, export them.

I guess that the darktable goal is not to enable new things, because with such a philosophy you could do everything in photoshop, it would just be longer. The strength of darktable lays in how much we can automate. I believe this suggestion fits into this category.

wpferguson commented 3 months ago

The strength of darktable lays in how much we can automate.

darktable provides basic automation through presets and styles. User specific workflows which exceed the capabilities of presets and styles, such as yours, can be automated using the built in Lua scripting engine.

victoryforce commented 3 months ago

have you ever tried sharing jxl files with friends? It is outright impossible. jpeg is to ease the transition. I, for my own usage, would use jxl to familiarize me with the format, while i could still share my pic with my friends

Yes, but for that you need NOT permanently keep both formats thus completely nullifying the advantage of the jxl format in smaller file sizes. There is no need to do this just to share some images with friends. In this case, you convert jxl to jpeg with something fast (djxl, ImageMagick), send the result and delete it as no longer needed.

MarcBresson commented 3 months ago

good point. But easing the transition also means sharing JXL files to those who can have it, and defaulting to jpeg for others.

I would love to see jxl democratized, I did not think there would be such inertia for this new format. I guess adobe is the one that can change that

MarcBresson commented 3 months ago

Here is how Adobe Illustrator does it

image

victoryforce commented 2 months ago

good point. But easing the transition also means sharing JXL files to those who can have it, and defaulting to jpeg for others.

Why "but"? I do not see in this phrase anything that would contradict my words. Yes, obviously we will share JXL files only to those who can view it. In my previous comment I even described optimal workflow for such cases.

I would love to see jxl democratized, I did not think there would be such inertia for this new format.

This inertia has a name: Google.

I guess adobe is the one that can change that

Adobe clearly sees the potential of this format, but they aren't influential enough that their support will make a difference. It was Apple who gave a huge push to support JXL.