Hi folks. I have planned to come up with a better interface for the scale dialogs. The task turned out to be more complex than I initially thought. Because I will probably be busy until next weekend I am posting the unfinished work here for some discussion that could help push things forward. Only the image scale dialog has been mocked up in glade for now, although suggestions how to solve the defined tasks are suggested. No UI for that yet. There are couple of open issues even with the scale image dialog. * The header could stay, showing not only a thumbnail, filename, but perhaps also the original pixel size (see below). * Task No.7 is calling for some sort of preview control within the dialog (perhaps embedded in the disclosure triangle) control similar to what we have for changing canvas size, except with pixmap preview. * Don't have a use case for why would the original pixel size be useful. Dropped it, but have a weird feeling I'm missing something. PNG mockup: http://jimmac.musichall.cz/stuff/scale-image-mockup.png glade files: http://primates.ximian.com/~jimmac/product-design/GIMP/ cheers -- Jakub Steiner <jimmac@xxxxxxxxxx>
revision 0.1 - initial draft (16.5.2004) Scale Dialogs Proposal ---------------------- Background ---------- Pete is a webdesigner with a passion for music and photography. He runs GIMP on Linux. Tasks ----- 1) Pete wants to scale his photograph so that it best-fits on a CD cover to modify it later on and add a subtitle. Pete wants to keep the aspect ratio, but prefers cropping to framing. The photo he wants to put on the background of the CD cover has a 13:9 ratio. 2) Pete has a base of his CD cover done, but now needs to put a photograph below his CD title. a) The source photo is very wide and has two tall trees on the sides, but people standing next to them. He would like the trees to align with the start and end letters of the title and still make the people fit. Pete wants to keep the aspect ratio of the original photo. b) The source photo needs to fit the width of the text and height of the remaining area below the photo. c) Pete doesn't like the final size of the title/photo cobinations and wants to scale them down a little keeping them cenetered horizontally. 3) Pete has a nice 16x16 B/W icon that look very nice next to the copyright information, however it needs to be scaled up to be visible. He doesn't want it to end up all blury thanks to filtering. 4) Pete has a a set of photographs and wants them all scaled down to VGA resolution. 5) Pete needs to do an abstract wallpaper for a specific screen that he know is 2000px wide and has a 16:9 aspect ratio. He has a nice abstract 13:9 photo that can take some distortion. 6) Pete wants to see if the cover would work for the small-sized CD too. Without changing the pixel resolution, he wants to boost the print resolution. 7) Pete's friend Tom brought an screengrab from his PAL video footage that he recorded in wideangle mode and is a bit compressed horizontally. He wants to put that shot on the webpage so he'd like to correct the aspect ratio. Interface Proposal ------------------ General ------- One thing that would be very helpful everywhere in GIMP would be using a custom "intelligent" unit text entry. Instead of using a spinbox and a dropdown for entering numbere values and units, there could be a single entrybox accepting a number AND the unit, that would also include a simple calculator. Task 5 illustrates how it could be useful in practice. Image Scale Dialog ------------------ Some comments * The ratio control has been dropped, since it effectively duplicates the % unit. * Print resolution has been removed (discussed at task 6 below) * Quality frame can possibly be dropped and template moved outsize the size frame as you have done with the New dialog implementation in 2.1. That goes against the suggestion of the HIG not to mix framed and unframed elements though. * Pixel size label would only appear when using non pixel units Task Accomplishment ------------------- 1) Pete opens the new image and brings up the image>scale dialog. He slects "CD" as a template. The Width and Height values get unlinked. Pete changes the unit to "%". He sees something like 56% for Width and 80% for Height. Because he wants the image to retain its aspect ratio, he locks W and H, focuses the H control and presses enter. That will make the Width control update to 80%. He applies the settings and brings up the Image>Canvas size dialog. Selects the CD template and presses the center button. 2a) Pete drags the source photo onto the CD cover image. With the photo layer active, he selects the scale tool which now has a live preview of the transformation (*yay* ;). /* not sure about this (would be consistant with the selection tools): Alt dragging moves the layer/selection, Shift keeps the aspect ratio, Ctrl scales centered with regard to the pivot point. Dragging from the sides will scale only in the appropriate axis. This can be problematic with large layers on small images (solvable with large zoom + perhaps fullscreen mode), however the current behaviour isn't consistent and doesn't handle keeping aspect ratio if I'm not mistaken. */ Thanks to the preview he can position the image exactly he wants. 2b) Pete creates a rectangular selection below the CD title which defines exactly the target area. He makes sure the photo he wants to scale is placed on the CD image and active. He brings up the layer>scale dialog and clicks on the from selection button. That updates all the appropriate fields. He applies his changes pressing OK button. 2c) Pete locks the title text and the photo below in the layer's window and uses the scale tool. /* again the proposed behaviour: Pete presses Ctrl while draging so that the layers are scaled evenly on both sides keeping the objects centered horizontally. */ 3) Pete drags the icon on the CD cover. He uses the scale tool /* constraining proportions with Shift */ with the "interpolaton" tool setting set to "none". The preview gives him good idea about the size of the artwork even when the original icon had some padding. 4) GIMP is an interactive image editor, not a batch processor. Task No. 4 should be addressed with a batch/commandline processor such as ImageMagick or an image viewer/manager such as f-spot or gthumb. 5) If GIMP had the custom unit inputbox which could accept not only the number, but the unit as well, one could easily accomplish the task the following way. Pete enters 2000 px in "width" inputbox. Unselects the link between W and H. The computed value for height is, say, 1385. He enters "1385/16*9 px" or "1385 px * 9/16" to get 779 px. 6) Peter brings up the Image properties dock and changes the final print resolution from 75 DPI to 150DPI. I would reccomend removing the print resolution from the scale dialog. Scaling in this sense doesn't affect any pixels and should be treated as an image property. FIXME: I suggest introducting an Image Properties dialog that would include some meta info editor, EXIF data viewer, and print resolution. Having it as a dock and merging it with Image>View>Info Window would be a good idea. 7) FIXME