首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSImageView setImageScaling notWorkingCorrectly

NSImageView setImageScaling notWorkingCorrectly
EN

Stack Overflow用户
提问于 2012-07-05 16:10:22
回答 3查看 3K关注 0票数 2

我在nsimageview中缩放图像时遇到了问题。所发生的情况是,当图像被加载时,它不会填满整个nsimageview。我使用了NSScaleToFit,它完全扩展了图像。因为我不知道照片的尺寸(它会改变,取决于所使用的图像),所以我无法将nsimageview设置为大小,并将其留在那里。我想要做的是用一个图像填充整个nsimageview,按比例计算,即使部分图像被切断。

这是我正在使用的代码:

代码语言:javascript
复制
NSString *image_path = [applicationSupportDirectory stringByAppendingPathComponent:desktop_name];
        NSImage *imageFromBundle = [[NSImage alloc] initWithContentsOfFile:image_path];
        [ViewImage setImageScaling:NSScaleProportionally];
        [ViewImage setImage: imageFromBundle];
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-30 15:28:18

我自己制定了解决方案,因为那些内置的解决方案不起作用。

代码语言:javascript
复制
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];
票数 0
EN

Stack Overflow用户

发布于 2014-05-04 17:15:06

我也有同样的问题。我想让图像被缩放以填充,但保持原始图像的高宽比。奇怪的是,这并不像看上去那么简单,也没有从NSImageView中脱颖而出。我希望在使用superview调整大小的同时,NSImageView规模更好。我做了一个附带的NSImageView子类,您可以在github:KPCScaleToFillNSImageView上找到它。

票数 1
EN

Stack Overflow用户

发布于 2012-07-05 16:20:47

我不认为像这样的东西是内置的,你很可能需要自己去改变形象。

不过,它相对简单;您可以看到一个实现这里的示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11348362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档