Update the NSImage code to just use an NSBitmapImageRep for determining the correct pixel width and height
Thanks to @indragiek for the tip.
This commit is contained in:
parent
fbf9186d10
commit
bfb6b35a3e
1 changed files with 5 additions and 7 deletions
|
|
@ -212,13 +212,11 @@ static dispatch_queue_t image_request_operation_processing_queue() {
|
||||||
#elif __MAC_OS_X_VERSION_MIN_REQUIRED
|
#elif __MAC_OS_X_VERSION_MIN_REQUIRED
|
||||||
- (NSImage *)responseImage {
|
- (NSImage *)responseImage {
|
||||||
if (!_responseImage && [self isFinished]) {
|
if (!_responseImage && [self isFinished]) {
|
||||||
self.responseImage = [[[NSImage alloc] initWithData:self.responseData] autorelease];
|
// Ensure that the image is set to it's correct pixel width and height
|
||||||
|
NSBitmapImageRep *bitimage = [[NSBitmapImageRep alloc] initWithData:self.responseData];
|
||||||
// The size of an NSImage can sometimes be incorrect, so make a CGImage which is more
|
self.responseImage = [[[NSImage alloc] initWithSize:NSMakeSize([bitimage pixelsWide], [bitimage pixelsHigh])] autorelease];
|
||||||
// like a single pixel-based representation so it is the correct size, and then
|
[self.responseImage addRepresentation:bitimage];
|
||||||
// set the size based on what the CGImage says it is.
|
[bitimage release];
|
||||||
CGImageRef cgimage = [[NSBitmapImageRep imageRepWithData:self.responseData] CGImage];
|
|
||||||
[self.responseImage setSize:NSMakeSize(CGImageGetWidth(cgimage), CGImageGetHeight(cgimage))];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return _responseImage;
|
return _responseImage;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue