|
From: | Riccardo Mottola |
Subject: | Re: Image size, DPI (was Re: Gorm is broken) |
Date: | Tue, 03 May 2011 22:28:07 +0200 |
User-agent: | Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.1.19) Gecko/20110420 SeaMonkey/2.0.14 |
Hi,
yes it is actually just an arbitrary value. It wass actually the DPI of early dot-matrix impact printers... I don't think any NeXT machine had less than 90 dpi.Yes. However, the value 72 dpi is important in GNUstep/Cocoa because 1 point in the window's base coordinate system = 1 pixel, and a point is 1/72 inch. (even though it's an arbitrary number in some sense because no modern desktop screens are really as low resolution as 72 PDI).
Cocoa supprts also ICNS with multiple res images which is very good for things like icons in the workspace or the dock. It is also very good when supplying smaller images. For example 16x16 or 32x32 look much better if supplied instead of precomputed.So drawing an image with 1 pixel = 1 pixel means treating the image as if it is 72 DPI, which is what the code did before my patch, i.e. it set the dimensions in points to the dimensions in pixels. I just checked on Cocoa and it ignores the dpi of PNG's and assumes them to be 72dpi, however it reads and uses the dpi of TIFF's exactly as GNUstep does now. In addition, Cocoa supports multi-image TIFF's, something I would like to add support for to GNUstep. This means we can provide high-res versions of the default artwork which are only used when a scale factor> 1 is set.
It makes no sense to ignore it by PNGs and use it by TIFFs. I'd say Cocoa is giving TIFF a preferential route.
I wonder how OpenStep handled this, I think the 72 dpi thing was inherited by mac classic.I think your patch is wrong in concept: no developer would expect their button or any other gui element to be resized according to the display resolution. A pixel is a pixel in that case.By default a pixel is a pixel. But when you set GSScaleFactor to a number other than 1, everything is scaled. Using the DPI metadata means a slight inconvenience for people who don't use the scale factor feature (ensuring all images are set to 72dpi), but it allows providing high-resolution versions of images for when higher scale factors are used, so I think it makes sense.
If you find no resolution information you should then assume 72dpi. Riccardo
[Prev in Thread] | Current Thread | [Next in Thread] |