我有以下目标 C 函数,旨在将 NSBitmapImageRep 调整为指定大小。
目前,当处理大小为 2048x1536 的图像并尝试将其调整为 300x225 时,此函数不断返回大小为 600x450 的 NSBitmapImageRep。
- (NSBitmapImageRep*) resizeImageRep: (NSBitmapImageRep*) anOriginalImageRep toTargetSize: (NSSize) aTargetSize
{
NSImage* theTempImageRep = [[[NSImage alloc] initWithSize: aTargetSize ] autorelease];
[ theTempImageRep lockFocus ];
[NSGraphicsContext currentContext].imageInterpolation = NSImageInterpolationHigh;
NSRect theTargetRect = NSMakeRect(0.0, 0.0, aTargetSize.width, aTargetSize.height);
[ anOriginalImageRep drawInRect: theTargetRect];
NSBitmapImageRep* theResizedImageRep = [[[NSBitmapImageRep alloc] initWithFocusedViewRect: theTargetRect ] autorelease];
[ theTempImageRep unlockFocus];
return theResizedImageRep;
}
调试它,我发现 theTargetRect 的大小合适,但是对 initWithFocusedRec 的调用返回一个 600x450 像素(高 x 宽)的位图
我完全不知道为什么会发生这种情况。有没有人有任何见解?