Re: Draw image within a NSBezierPath with no border
Re: Draw image within a NSBezierPath with no border
- Subject: Re: Draw image within a NSBezierPath with no border
- From: Kyle Sluder <email@hidden>
- Date: Thu, 06 Mar 2014 09:02:00 -0800
On Mar 6, 2014, at 8:34 AM, Leonardo <email@hidden> wrote:
>
> Hi, I have an oval NSBezierPath path. I fill it with a blue color,
> then I draw an image within the same path. And I can still see a blue tiny
> border around the image. I would expect the color be never visible since the
> image covers the whole area. That's my code:
>
> fillPath = [NSBezierPath bezierPathWithOvalInRect:fillBounds];
> [aBlueColor set];
> [fillPath fill];
> [fillPath addClip];
> [image drawInRect:fillBounds fromRect:NSZeroRect
> operation:NSCompositeSourceOver fraction:1.0];
>
> Even if I draw the image in a bigger rect, the blue border is still there.
> What do I miss?
Due to antialiasing, the fringes of your mask have alpha < 1.
Let’s say there’s a pixel on the fringe of your mask that winds up with alpha 0.5. Using your code, that pixel's final color will be 0.5 * (0.5 * Original background color + 0.5 * blue) + 0.5 * (color from image).
--Kyle Sluder
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden