On Nov 29, 2008, at 10:57 AM, Richard Somers wrote:

I just discovered part of my problem. The pdf image was being scaled down slightly even though there was plenty of room for it inside the NSButton. The default scaling is "Proportionally Down". Change this to "None" and the image now is always sharp, at least for a User Interface Resolution of 1.0.

Change the User Interface Resolution to 1.25 or 1.5 and the pdf image is ok but not great. This is apparently because "A shape is scan-converted by painting any pixel whose square region intersects the shape, no matter how small the intersection is." according to the "Scan Conversion Rules" in the pdf standard. I think this is why it looks less sharp at these resolutions. Note that fonts get special treatment and will render more "precisely" because they are hinted.

Anyway, perhaps this is why the final image used for many Apple widgets are bitmapped tiff files and not vector pdf. You can tweak each and every pixel in a tiff file if you want to. For me I just wanted to make single vector image and be done with it.


YMMV, but over 99% of my apps images are all vector-based PDF. They scale beautifully at any scaling factor between 0.5 and 3.0 (to include the non-integral ones).

Artwork is anything from very simple to very complex (to include vectorized versions of original artwork from Poser).

I created a class to manage drawing of such images. When drawing, you must "normalize" the destination rect such that it will always fall on integral boundaries:

+ (void)makeIntegralRectForScaling_II:(NSRect*)aRect
{
        if (scalingFactor_II != 1.0)
                {
                aRect->origin.x *= scalingFactor_II;
                aRect->origin.y *= scalingFactor_II;
                aRect->size.width *= scalingFactor_II;
                aRect->size.height *= scalingFactor_II;
                
                *aRect = NSIntegralRect (*aRect);
                
                aRect->origin.x /= scalingFactor_II;
                aRect->origin.y /= scalingFactor_II;
                aRect->size.width /= scalingFactor_II;
                aRect->size.height /= scalingFactor_II;
                }
}

___________________________________________________________
Ricky A. Sharp         mailto:[EMAIL PROTECTED]
Instant Interactive(tm)   http://www.instantinteractive.com



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to