- 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/
我正在尝试执行 vagrant up 但一直遇到此错误: ==> default: IOError: [Errno 13] Permission denied: '/usr/local/lib/pyt
我在容器 div 中有一系列动态创建的不同高度的 div。 Varying text... Varying text... Varying text... Varying text.
通过 cygwin 运行 vagrant up 时遇到以下错误。 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-14872260
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
我是 vagrant 的新手,正在尝试将第二个磁盘添加到我正在用 vagrant 制作的虚拟机中。 我想出了如何在第一次启动虚拟机时连接磁盘,但是当我关闭机器时 然后再次备份(使用 'vagrant
我是一名优秀的程序员,十分优秀!