【发布时间】:2010-03-28 03:39:04
【问题描述】:
我有一个 NSImage,我想像这样调整它的大小;
NSImage *capturePreviewFill = [[NSImage alloc] initWithData:previewData];
NSSize newSize;
newSize.height = 160;
newSize.width = 120;
[capturePreviewFill setScalesWhenResized:YES];
[capturePreviewFill setSize:newSize];
NSData *resizedPreviewData = [capturePreviewFill TIFFRepresentation];
resizedCaptureImageBitmapRep = [[NSBitmapImageRep alloc] initWithData:resizedPreviewData];
saveData = [resizedCaptureImageBitmapRep representationUsingType:NSJPEGFileType properties:nil];
[saveData writeToFile:@"/Users/ricky/Desktop/Photo.jpg" atomically:YES];
我的第一个问题是,当我尝试调整它的大小并且不符合纵横比时,我的图像会被压扁。我读到使用 -setScalesWhenResized 可以解决这个问题,但它没有。
我的第二个问题是,当我尝试将图像写入文件时,图像实际上根本没有调整大小。
提前致谢, 瑞奇。
【问题讨论】:
-
您正在将
saveData写入文件。它来自哪里? -
setScalesWhenResized:不会改变处理纵横比的方式。相反,它强制每个NSImageRep在下一次调用setSize:时重新调整其内容。此外,它在 10.6 中已弃用。