Improved Media Management
This set of issues generally is first seen due to problems managing linked vs. embedded images. However it quickly becomes clear that the underlying principals and problems extend across the board to many things including CSS files, ICC profile files, etc.
- Arthur wants to create a collage using some bitmaps. He drags 2 images from Firefox into an SVG document, pastes a third one from GIMP and imports 4 other from his photo folder. He increases the contrast on one of them. He saves the document and sends the SVG using e-mail to a friend. He doesn't know much about links, so he does not include the original images in his e-mail.
- Issa works on a multi-user system at an university. She opens a scientific poster template from a shared read-only folder. She pastes photos of samples into the document, then saves the poster in her home folder.
- Charlie uses Inkscape to add vector frames to his photos. He wants to be able to post-process the images without updating the SVG document. He creates an image link.
- Sara is a web designer and has SVG documents with lots of absolute image links. She moves all the images to another folder. The links break, which is not surprising to her. She wants to fix all the links at once.
- Billy wants to edit an image embedded in the SVG document he received from Arthur.
Use cases are helpful, but in order to gain the most we need to know who are the users under discussion. This is a general Usability Design issue and we have some overall information being collected under our wiki section on User Personas. The specific user personas referenced in these cases on this page are:
- Arthur - 40-year old department store owner and amateur photographer who uses Windows. He has no idea what SVG stands for, but is familiar with pasting images into MS Word documents.
- Issa - 21-year old undergrad student of chemistry with some generic Unix experience, but no SVG or Web technologies experience.
- Charlie - 35-year old US Navy nuclear propulsion engineer on an overseas deplyoment who misses his family and likes to learn time-saving tricks.
- Sara - 30-year old Web designer with extensive knowledge of Web technologies and some experience with hand-tweaked SVG documents.
- Billy - 16-year old son of Arthur, a high school student and Wikipedia contributor experimenting with free software. Uses Inkscape from time to time to update world maps and draw diagrams.
Note: first two lists describe problems that are inherent, while the third has issues that are specific to Inkscape and its current feature set.
Issues with links:
- Unsophisticated users might not understand how linked assets work.
- When moving SVG to another computer (via e-mail or to a web server), users can forget to include the linked assets.
- When the linked asset is moved, the SVG will break.
- If relative links are used, moving SVG with linked assets to another directory can break it.
- If absolute links are used, moving SVG and its linked assets to a different computer can break it.
- Editing linked images externally or using ImageMagick extensions might unexpectedly overwrite valuable images.
Issues with embedding:
- Embedding assets increases their size by 33%.
- For Web-hosted SVGs, this increases bandwidth usage.
- Embedding prevents sharing of linked assets across documents (e.g. same PNG background in multiple SVG files)
- Text-editing an SVG with embedded images is resource-intensive.
- Embedding copyrighted fonts in the document might be illegal.
Issues with the current implementation:
- Paste has become disconnected from drag-n-drop. They should use a unified code path, and behaviors need to be consistent.
- Pasting an image selection results in a auto-generated .png file with a deterministic, but meaningless name being created in the document's directory.
- Pasting an image into an unsaved document on Windows requires administrator privileges. This is because if the document's directory is unwritable or not known, Inkscape writes the file to the program's current directory. On Windows, that's the installation directory.
- On Linux, pasting into an unsaved document usually creates the image file in the user's home directory, but it depends on the directory from which Inkscape was started.
- It's not possible to paste images into a document opened from a read-only directory.
- Users often don't expect this behavior, and don't include the created image files along with the document when sending it to others or uploading them to web servers, which results in broken documents.
- Embedded bitmaps cannot be edited externally.
- Link management / embedding management should be uniform across many asset types, not just those referenced in <image> elements.
- Raster images (PNG, JPEG, SVG, others)
- ICC color profiles
- CSS stylesheets
- GIMP palettes, SwatchBook files
- References to SVG content in other documents, for example SVG fonts
- Embedded binary fonts (TTF, OTF, etc.)
- It's not possible to create a link to another SVG image.
- Inkboard does not transmit linked images. In fact it doesn't currently work at all.
- Links containing ".." are not handled correctly. (?)
- To embed a linked image or extract an embedded image, the user must use extensions, which is poorly discoverable.
- Default to embedding images when pasting and Drag and Dropping.
- Create a pref setting that allows the user to set the default paste and DnD behavior to linking.
- When Drag and Dropping a file with the right mouse button (Windows) or middle mouse button (Linux), ask whether to embed or to link.
- Import dialog should have 2 radio buttons: "Embed" and "Link", with "Embed" being selected by default.
- Create a dialog that lists external and embedded media referenced by the document.
- Provide a right click menu item for images: Embed / Extract (which one is displayed would depend on whether the image is linked or embedded).
- Provide a right click menu item to fix broken links.
- Allow the user to select between an absolute and relative link when importing.