macos - Cairo 和高 DPI 绘图(在视网膜表面上绘图,OS X)

标签 macos drawing cairo

我的应用程序使用 cairo 绘制一些图像,如下所示:

cairo_set_source_surface(cr, _page_down_icon, icon_x, y);
cairo_paint(cr);

其中向下翻页图标是我通过cairo_image_surface_create_from_png加载的png。

这在标准屏幕上工作正常,但在视网膜显示器上产生低质量图像。所以我正在考虑拥有第二个具有双分辨率的图像(就像 NSImage 常见的那样)。但是,如果我只绘制此图像,结果将是标准图像的两倍。所以我的问题是:如何使用 cairo 在视网膜显示屏上绘制高分辨率图像,使其看起来清晰?

最佳答案

cairo_scale 是你的 friend 。使用此方法,您可以调整表面轴的缩放比例。为了获得您想要的结果,您需要将第二张图像缩放 0.5(并不是说您还必须调整图像的目标位置!)。

关于macos - Cairo 和高 DPI 绘图(在视网膜表面上绘图,OS X),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16301259/

相关文章:

android - 为 Android NDK 构建 Pango Cairo

macos - 如何在 macOS 上安装 Mono 以便 Mono 在终端中运行?

java - 我的 Java 应用程序是否必须具有 x86 和 x64 版本?

opencv - 如何确定使用openCV绘制的椭圆的中心坐标?

Android:对于 Canvas 动画,最好有 1 个大线程,或多个小线程

c - 返回正确值但目标变量错误的 C 函数调用

macos - Powerlevel10k 的 transient 提示是否应该保留在窗口底部?

macos - 如何从命令行设置 MAC 的安全和隐私设置

ios - 为什么 UIBezierPath strokeWithBlendMode 什么都不做?

cairo - 如何子类化 Clutter.Actor(涉及 Cairo/Clutter.Canvas)