如何在 OS X Core Graphics 位图上下文中指定分辨率?
how to specify resolution in OS X Core Graphics bitmap context?
我一直在查看 OS X Core Graphics 的文档,但我看不到任何指定 dpi 分辨率的内容。
如何创建 300 dpi 的位图上下文?
谢谢
位图上下文没有 "resolution"(在每英寸像素或任何物理距离单位的意义上)。它只是一个像素网格 - 所以它确实具有 "resolution" 的另一个常见含义,即以像素为单位的宽度和高度,您在 Swift 3 中使用 CGBitmapContextCreate
function (or the init(data:width:height:bitsPerComponent:bytesPerRow:space:bitmapInfo:)
初始值设定项时提供。 =19=]
只有当您将位图写入输出文件或在屏幕上显示位图时,每英寸点数或每点像素等概念才会发挥作用。当然,如何做到这一点取决于你在做什么。一些提示:
- 要写入 TIFF 文件,请使用
kCGImagePropertyTIFFXResolution
和 kCGImagePropertyTIFFYResolution
以及 CGImageDestination
(see also Working with Image Destinations) 在文件元数据中写入 DPI 值。其他格式也有类似的元数据键,例如 kCGImagePropertyPNGXPixelsPerMeter
.
- 屏幕显示见High Resolution Guidelines for OS X。
我一直在查看 OS X Core Graphics 的文档,但我看不到任何指定 dpi 分辨率的内容。 如何创建 300 dpi 的位图上下文?
谢谢
位图上下文没有 "resolution"(在每英寸像素或任何物理距离单位的意义上)。它只是一个像素网格 - 所以它确实具有 "resolution" 的另一个常见含义,即以像素为单位的宽度和高度,您在 Swift 3 中使用 CGBitmapContextCreate
function (or the init(data:width:height:bitsPerComponent:bytesPerRow:space:bitmapInfo:)
初始值设定项时提供。 =19=]
只有当您将位图写入输出文件或在屏幕上显示位图时,每英寸点数或每点像素等概念才会发挥作用。当然,如何做到这一点取决于你在做什么。一些提示:
- 要写入 TIFF 文件,请使用
kCGImagePropertyTIFFXResolution
和kCGImagePropertyTIFFYResolution
以及CGImageDestination
(see also Working with Image Destinations) 在文件元数据中写入 DPI 值。其他格式也有类似的元数据键,例如kCGImagePropertyPNGXPixelsPerMeter
. - 屏幕显示见High Resolution Guidelines for OS X。