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
|
||||
- (NSImage *)responseImage {
|
||||
if (!_responseImage && [self isFinished]) {
|
||||
self.responseImage = [[[NSImage alloc] initWithData:self.responseData] autorelease];
|
||||
|
||||
// The size of an NSImage can sometimes be incorrect, so make a CGImage which is more
|
||||
// like a single pixel-based representation so it is the correct size, and then
|
||||
// set the size based on what the CGImage says it is.
|
||||
CGImageRef cgimage = [[NSBitmapImageRep imageRepWithData:self.responseData] CGImage];
|
||||
[self.responseImage setSize:NSMakeSize(CGImageGetWidth(cgimage), CGImageGetHeight(cgimage))];
|
||||
// Ensure that the image is set to it's correct pixel width and height
|
||||
NSBitmapImageRep *bitimage = [[NSBitmapImageRep alloc] initWithData:self.responseData];
|
||||
self.responseImage = [[[NSImage alloc] initWithSize:NSMakeSize([bitimage pixelsWide], [bitimage pixelsHigh])] autorelease];
|
||||
[self.responseImage addRepresentation:bitimage];
|
||||
[bitimage release];
|
||||
}
|
||||
|
||||
return _responseImage;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue