0
我有以下目標C函數意味着將NSBitmapImageRep調整爲指定的大小。NSBitmapImageRep -initWithFocusedViewRect將圖像大小加倍
目前,當處理大小爲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)的位圖
我在一個完整的損失爲什麼這可能會發生。有沒有人有任何見解?
確定嗎?我繼承了一箇舊的代碼庫(目前在10.7SDK並更新它),所以它們的代碼應該是有效的,除非有API更改。我認爲這只是新的目標C處理位圖像素分辨率的方式發生了變化。 – mosquito242
該代碼來自正在運行的項目。我不認爲那裏有什麼東西不能在10.7上工作,但它肯定能在10.9+上運行 – Jason