- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建 NSScrollView 对象的 NSImage,这样我就可以将平面图形用于动画目的。
当我将 ScrollView 对象渲染为图形并将其添加回我的窗口时,它可以工作,但看起来非常糟糕,就像它已缩放到 99% 或其他东西一样。我希望图像不被缩放并且 100% 像素准确。 (注意:图像没有缩放,大小相同,只是看起来像是重新缩放得不好 - 与屏幕上的 View 相比,文本看起来粗糙且差劲 ScrollView )
我的代码:(scrollView是我的NSScrollView对象)
NSData *pdf = [scrollView dataWithPDFInsideRect:[scrollView bounds]];
NSImage *image = [[NSImage alloc] initWithData:pdf];
NSImageView *imageView = [[NSImageView alloc] initWithFrame:[scrollView bounds]];
[imageView setImage: image];
[mainGUIPanel addSubview: imageView];
我尝试了很多东西,搞乱了像素大小、边界,使用 IB 创建目标 NSView 并将图像放入其中,但就是无法让图像看起来不那么糟糕。有什么想法吗?
编辑:我尝试将pdf数据写入pdf文件并查看它,看起来不错。因此,位图图像已正常捕获,只是在显示器上看起来像是被稍微缩放了。
编辑2:还尝试像这样获取位图:
NSBitmapImageRep *bitmap = [scrollView bitmapImageRepForCachingDisplayInRect:[scrollView bounds]];
[scrollView cacheDisplayInRect:[scrollView bounds] toBitmapImageRep:bitmap];
NSImage * image = [[NSImage alloc] initWithSize:[bitmap size]];
[image addRepresentation: bitmap];
相同的结果 - 位图看起来完全一样,但显示时很差且缩放。
这让我相信以任何一种方式捕获位图数据都可以正常工作,它正在创建 View 并渲染正在进行缩放的图像。如何确保 View 和图像以正确的尺寸和比例显示?
编辑3:好的,我开始了一个新的空白项目并进行了设置,它工作得很好 - 新的 ImageView 与抓取的位图相同。所以我怀疑我的问题源于将位图绘制到 View 时的一些渲染/合成问题。进一步调查...
事实证明,问题源于我正在渲染的 ScrollView 。它具有透明背景(在 IB 中关闭“绘制背景”),并且 ScrollView 的文本看起来不错。如果我使用透明背景色打开“绘制背景”,则文本渲染效果很差,就像我以编程方式捕获图像时一样。
因此,在我的应用程序中,即使“绘制背景”关闭,也会捕获 ScrollView 图像,就像“绘制背景”打开一样。所以我需要理解为什么当“绘制背景”打开并设置为透明时文本渲染得很糟糕,希望这能引导我找到解决方案。
还尝试创建一个关闭背景绘制的 NSClipview 并将位图 View 放入其中,但它仍然呈现相同的效果。我找不到一种方法可以将透明图像渲染到屏幕上而不会产生可怕的伪影。
最佳答案
好的,我已经找到解决方案了。我不是获取透明背景 ScrollView 对象本身,而是获取父 View (本质上是窗口背景),并将边界限制为 ScrollView 对象的大小。
这会捕获背景和 ScrollView 的内容,并正确显示,不会出现任何透明度问题。
关于macos - NSImage 总是被缩放并且看起来很糟糕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22975702/
我想在这里说的是我在从之前离开的相同状态重新启动我的应用程序时遇到的问题。我在这方面做了很多研发,并且已经解决了 stackoverflow 中发布的问题。所以请不要说它是重复的。 我试过设置这些选项
当我在我的类中实现 __cmp__ 函数时,python 是否会在内部重载“==”,我们在 C++ 中是如何做到的? 只是好奇。我是 python 的新手。 :) 最佳答案 ==的含义当您定义 __c
我在 Raspberry Pi2 上安装了 Gitlab,几个月来它运行良好。但自从关闭了RPi的电源后,它就不再起作用了。网页返回502错误。 502 Whoops, GitLab is takin
有人知道用户登陆带有Webfonts的页面时为什么Google Chrome浏览器崩溃吗 它并不会一直发生,而是经常发生 我刚得到一个蓝屏页面,却不知道为什么:该页面不是来自重定向时就很好了。 这是我
当我登录时,Skype始终会给出此错误。 糟糕,Skype存在问题。尝试注销然后重新登录。 STARTUP_LOAD_ERROR MACBOOK 最佳答案 Macbook 用户 退出Skype 回家
我正在尝试从 flutter 开始,首先我在 cmd 上运行 flutter doctor 它有效。在我安装了 ANDROID SDK 之后,同样的命令 flutter doctor 给了我异常:
从 android studio 终端运行 flutter attach 不工作。显示错误flutter 意外退出。 终端输出: flutter attach Checking for adverti
当使用 TinyMCE 4 测试所有浏览器时,Chrome 非常慢。 (我尝试从 TinyMCE 中删除所有插件,但没有任何区别。) Chrome 需要大约 20-25 秒在 TinyMCE 中呈现一
我试图让下面的脚本工作,以便从远程服务器(服务器 1)读取特定目录中的 CSV 文件列表,并将数据移植到另一台服务器的 PostgreSQL 数据库中。 我已经创建了一个 rsa SSH key 并将
在嵌入式 linux 环境中(在 PowerPC 上定制的 2.4.25)几个小时后我得到以下内核 panic : Oops: kernel access of bad area, sig: 11 N
在将现有 Node.js (Hapi.js) + RethinkDB 从 OVH VPS(最小 vps)迁移到 AWS Lambda( Node )+ DynamoDB 的过程中,我最近遇到了一个非常
我是一名优秀的程序员,十分优秀!