On 18 Aug 2013, at 21:03, Tom Davie <[email protected]> wrote:
>
> On 18 Aug 2013, at 15:56, Gerriet M. Denkmann <[email protected]> wrote:
>
>>
>> On 18 Aug 2013, at 20:09, Tom Davie <[email protected]> wrote:
>>
>>>
>>> On 18 Aug 2013, at 15:03, Gerriet M. Denkmann <[email protected]> wrote:
>>>
>>>> I just noticed that the program I use to create Png files creates files
>>>> with twice the number of pixels in each dimension.
>>>> Obviously because since I last used it, I have switched to a Retina Mac
>>>> Book.
>>>>
>>>> Ok, so I have to fix this program.
>>>
>>> The correct way to fix this problem is to create an image via
>>> CGContextCreate and CGContextCreateImage. When doing this you specify
>>> pixel rather than point dimensions, and do not have the issue you’re
>>> experiencing. You detect a retina device by testing scaleFactor as you
>>> suggested, it’s just unnecessary here.
>>
>> I just asked Xcode about CGContextCreate and it told me that there is
>> absolutely no information available.
>> Could anybody help me with some link to some documentation?
>
> Uhh sorry, my bad, I meant CG*Bitmap*ContextCreate…
>
> http://developer.apple.com/library/ios/documentation/graphicsimaging/Reference/CGBitmapContext/Reference/reference.html
Ah, now I found lots of info!
But I do not understand it. CIImage, CGImage, NSImage, UIImage... This is just
too much for my small brain.
I removed:
finalWidth /= 2; // Retina Fix 18.Aug. 2013
and replaced:
NSImage *image = [[NSImage alloc] initWithSize: sizE];
by:
size_t pixelsWide = (size_t)sizE.width;
size_t pixelsHigh = (size_t)sizE.height;
size_t bitmapBytesPerRow = pixelsWide * 4;
CGColorSpaceRef colorSpace =
CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);
CGContextRef c = CGBitmapContextCreate ( NULL, pixelsWide, pixelsHigh, 8,
bitmapBytesPerRow, colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedLast);
CGImageRef cgImage = CGBitmapContextCreateImage ( c );
NSImage *image = [[NSImage alloc] initWithCGImage: cgImage size: NSZeroSize ];
(ignoring leaks for the time being)
... and then continued with my old code.
The png is still 100 pixels wide.
You see, I am rather clueless.
Kind regards,
Gerriet.
_______________________________________________
Cocoa-dev mailing list ([email protected])
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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]