Ken,

I played around with this some more and I can get satisfactory results
by setting the image interpolation to NSImageInterpolationHigh, along
with making sure the dest size lies on integers.  So it looks like I
was being bit by the default resampling method.

Thanks!
- Dave.S

On Thu, Aug 21, 2008 at 2:34 PM, David Springer <[EMAIL PROTECTED]> wrote:
> Hi Ken,
>
> I can build a test app - give me a couple hours to put it together.
>
> As for antialiasing, I thought that might be the problem, but I set
> the image interpolation on the graphics context to
> NSImageInterpolationNone and get the same results.
>
> I am on Leopard 10.5.4 (this all has to work on Tiger, as well though).
>
> Thanks
> - Dave.S
>
>
> On Thu, Aug 21, 2008 at 2:26 PM, Ken Ferry <[EMAIL PROTECTED]> wrote:
>> Hi David,
>>
>> Could you post a complete test app? There's nothing in what you've
>> posted that looks problematic[1].  Also, what OS are you working on?
>>
>> -Ken
>>
>> [1]: well, except maybe that you're likely to see antialiasing on the edges.
>>  Your problem looks more severe than antialiasing, though.
>>
>> On Thu, Aug 21, 2008 at 12:47 PM, David Springer <[EMAIL PROTECTED]> wrote:
>>> Folks,
>>>
>>> For some reason, I am not able to figure this out.  I want to draw a
>>> scaled NSImage, but the edges of the image are not drawn, it seems
>>> like the resizing actually clips the image.
>>>
>>> I have an NSBitmapImageRep created from some data.  I then create the
>>> NSImage like this:
>>>
>>> NSImage *image = [[NSImage alloc] initWithSize:NSMakeSize([myBitmap
>>> pixelsWide], [myBitmap pixelsHigh]);
>>> [image addRepresentation:myBitmap];
>>> [image setScalesWhenResized:YES];
>>>
>>> // Figure out the new image size so that it is proportionally scaled
>>> by |scaleFactor|.
>>> NSSize scaledSize = ProportionallyScale([image size], scaleFactor);
>>>    [image drawInRect:NSMakeRect((kTileImageSize - scaledSize.width) * 0.5,
>>>                                   (kTileImageSize - scaledSize.height) * 
>>> 0.5,
>>>                                   scaledSize.width,
>>>                                   scaledSize.height)
>>>               fromRect:NSZeroRect
>>>              operation:NSCompositeSourceOver
>>>               fraction:1.0];
>>>
>>> This sometimes works (that is, the entire original image is visible).
>>> But more often than not, the edges of the original image are not
>>> drawn.  See the screen shots for a picture of what I get.
>>>
>>> What am I doing wrong here?  I have scoured the archives, I have tried
>>> things like making sure scaledSize has integer values, I have even
>>> done crazy things like add one to the height just to see what would
>>> happen.  Note that if I write out the TIFFRepresentation of |image|
>>> (both before and after) the entire image gets into the file (that is,
>>> the edges are not clipped).
>>>
>>> In the attached picture, the top tile is correct (you see all the
>>> black edges), the bottom two tiles are incorrect (not all the black
>>> edges are visible).
>>>
>>> Help?
>>> Thanks!
>>> - Dave.S
>>>
>>> _______________________________________________
>>>
>>> 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/kenferry%40gmail.com
>>>
>>> This email sent to [EMAIL PROTECTED]
>>>
>>
>
_______________________________________________

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