我在nsimageview中缩放图像时遇到了问题。所发生的情况是,当图像被加载时,它不会填满整个nsimageview。我使用了NSScaleToFit,它完全扩展了图像。因为我不知道照片的尺寸(它会改变,取决于所使用的图像),所以我无法将nsimageview设置为大小,并将其留在那里。我想要做的是用一个图像填充整个nsimageview,按比例计算,即使部分图像被切断。
这是我正在使用的代码:
NSString *image_path = [applicationSupportDirectory stringByAppendingPathComponent:desktop_name];
NSImage *imageFromBundle = [[NSImage alloc] initWithContentsOfFile:image_path];
[ViewImage setImageScaling:NSScaleProportionally];
[ViewImage setImage: imageFromBundle];发布于 2012-07-30 15:28:18
我自己制定了解决方案,因为那些内置的解决方案不起作用。
NSRect frame = [MyWindow frame];
if (abs(windowHeight-[imageFromBundle size].width) > abs(windowWidth-[imageFromBundle size].height)) {
frame.size.height = windowWidth;
frame.size.width = 1+windowWidth*(([imageFromBundle size].width/[imageFromBundle size].height-(10*pow([imageFromBundle size].width, 2))/(pow([imageFromBundle size].height, 2)* windowHeight)));
} else {
frame.size.width = windowHeight;
frame.size.height = ((windowHeight/[imageFromBundle size].width)*[imageFromBundle size].height);
}
[MyWindow setFrame: frame
display: YES
animate: YES];发布于 2014-05-04 17:15:06
我也有同样的问题。我想让图像被缩放以填充,但保持原始图像的高宽比。奇怪的是,这并不像看上去那么简单,也没有从NSImageView中脱颖而出。我希望在使用superview调整大小的同时,NSImageView规模更好。我做了一个附带的NSImageView子类,您可以在github:KPCScaleToFillNSImageView上找到它。
发布于 2012-07-05 16:20:47
我不认为像这样的东西是内置的,你很可能需要自己去改变形象。
不过,它相对简单;您可以看到一个实现这里的示例。
https://stackoverflow.com/questions/11348362
复制相似问题