Export dialog workgroup

From GIMP GUI Redesign
Jump to: navigation, search


Feature request: https://bugzilla.gnome.org/show_bug.cgi?id=754452

Summary

Save and export used to be considered the same action. This has been changed as of GIMP 2.8 to be considered as 2 distinct concepts, based on the Save + Export specification.

Nevertheless apart from label changes and programmatic restrictions of file types, the save and export dialog were still basically the same things. Actually they even used the actual same code under the hood! This explains probably partially why many users were puzzled: there don't seem to be a conceptual difference from the GUI point of view. The current workgroup proposes to continue the work started from the save + export spec.

The following workflow (very common in computer graphics work) is a good example of why revamping the export dialog is needed: workflow of Liam.

Use Cases

  • Export a work in progress in higher quality possible in a given filetype.
  • Export a work in progress in as small a file as possible without too much quality loss for sharing over the networks (emails).
  • Export for the web.
  • Change the exported image's color profile without touching the work color profile (for instance sRGB export while original is in AdobeRGB).
  • Export and make some changes (filters, crop, etc.) only on the exported file without touching the original.

Current UI Analysis

The current UI creates a common Gtk+ File chooser dialog with a preview (of selected file, not of the file to export) and a file type additional list. When clicking "Export", optional option dialog(s) can popup with various features. See for instance the steps for exporting a PNG:

Screenshot-current-export-dialog.jpg

When exporting the environment variable GIMP_INTERACTIVE_EXPORT, one may even get more intermediary dialogs which have been deprecated (but it resulted into feature loss too). The Save + Export spec was saying rightfully:

Nobody likes clicking their way through export options dialogs. So we will put the brakes on them:
* there shall be one export options dialog:
   * export conversion information that needs no user choices shall be omitted;
   * the generic export choices and the file-type specific export choices shall be integrated into one dialog; 
[...]

Proposal of Change: integrate export options

Couldn't we integrate the export options into the main export dialog, rather than popping up various dialogs? When the file name extension is changed (or if a file type is selected in the list), we could automatically update the export options to the right file type.

Note: it will involve a change of the API for file type handling.

Proposal of New Feature: modify image before export

Sometimes one wants to change an image only for some export cases without touching the original file.

For instance if you want to resize your export (for web upload, etc.) without touching the high resolution of your work in progress, a current common procedure is to resize your work, export, then cancel the resize. Often you want to apply a sharpen filter after your resizing, which involves even more steps to not forget to cancel (case which may result in data loss).

Often called "Save for Web" on other software, I believe these capabilities could belong to the normal Export dialog.

The following features have been discussed as good candidates:

resizing
it has also been wondered if "sharpening" should be part of it and in which form (detailed UI? Just a checkbox?).
change color profile
cropping
a good example was given by pippin: "cropping an area is also for uses like making assets for ui toolkit themes".
various filters/GEGL ops
what allowing allowing any ops as an additional GEGL tree above the main image's tree?
save layers individually?
precision
"As exporting to a lower precision is likely to invoke the dither dialog, it would be nice to be able to set global dither preferences" (Elle)
metadata
many file formats have support for metadata, which could be handled generically.

It would be also very interesting to propose preset saving. This could allow to export only for a given preset (low res for web, high res for print, etc.) but also to export all presets at once (in the UI design example by pippin for instance).

Below a proposed wireframe by pippin: Export-wireframe-pippin.png

Proposed Feature: presets

As proposed in the wireframe, how about "presets" saved to show crops of the image, but also sets of layers. Ragnar Brynjúlfsson from Storm Studios, CG professional interviewed by Alex Prokoudine said:

I'll start with your last question. I think a lot of 3D folk would like the feature you mention with saving different sets of visible layers, we've even considered writing something like that for the Photoshop guys here. It's quite common for texture artists to work with multiple parts of a texture in the same file. They may for instance have diffuse, spec and bump all in one xcf or psd file, then they change the visibility settings of the different layers or layer groups, to save out each texture type. Being able to define sets, and give them a path and file format to save to would be quite handy, as once that is set up, you could literally write out all the different parts of you texture at the push of a button. I guess this could also be implemented as a plug-in if needed.

Another proposition by gez was to have a concept of export views in GIMP allowing to change the export features directly in GIMP. While the idea is interested, I (Jehan) personally think this would make GIMP UI much more complicated, and the feature less discoverable.

Note also a previous discussion on dev mailing list.

Proposal of Change: less place for export path

Pippin's image also raise another interesting point: should the export path be given that much place (basically using GTK+ file chooser)? A directory chooser could be raised by clicking on the path, instead of always been shown as if it was the most important part of export. The importance could be shift to the export options.

Proposal of New Feature: export preview

Currently export preview can happen as a hack from some file type plugins (like jpg which creates a temporary "preview" layer). This is not a core feature. This should be a core feature. The preview should show exactly what you would get if you opened the exported file (allowing to check for image quality but also feature changes as cropped images, etc.).

This could either be a preview in the export dialog as Pippin's wireframe or a preview directly on-canvas, like we have with GEGL ops (I am in favor to on-canvas previews).

Proposal of New Feature: export dock

There have been a recent feature request about having the open dialog as a dock rather than a dialog.

I thought this is an interesting idea, which could also be used for the export dialog. Not necessary completely removing the use of the dialog, since a dock-only export might prove a little tight for formats with many options.

This said, this might be quite interesting to be able to keep an export dock at hand, especially with a preset feature.

Liam does not like it: "Inkscape does this - I actually hate it, because (1) it takes up a lot of space when i dont' want it, and (2) it doesn't go away when the drawing is exported."

Proposed feature: plugin API to enhance the export dialog

Several ideas have raised to improve the export dialog. Some may be too specific to some workflows. A better approach could be to propose an API for a plugin to enhance the export dialog with custom widgets.

Currently a plugin who wants to proposed advanced export feature will have to made its own full export dialog, hence duplicating shortcuts, menu items and reimplementing basic export functions. It would be interesting to allow plugins to enhance the basic export dialog.