2016-08-16 2 views

ответ

2

Контекст растрового изображения не имеет «разрешение» (в смысле пикселей на дюйм, или в какой-либо единицы физического расстояния). Это всего лишь сетка пикселей, поэтому у нее есть другое общее значение «разрешения», означающее ширину и высоту в пикселях, которые вы предоставляете при использовании функции CGBitmapContextCreate (или инициализатор init(data:width:height:bitsPerComponent:bytesPerRow:space:bitmapInfo:) в Swift 3).

Концепции, такие как точки на дюйм или пиксели на точку, вступают в игру только тогда, когда вы пишете растровое изображение в выходной файл или отображаете его на экране. И способ сделать это, конечно, зависит от того, что вы делаете. Некоторые советы:

  • Для записи файла TIFF, записывать значения DPI в метаданных файла, используя kCGImagePropertyTIFFXResolution и kCGImagePropertyTIFFYResolution с CGImageDestination (см также Working with Image Destinations). Существуют аналогичные ключи метаданных для других форматов, например kCGImagePropertyPNGXPixelsPerMeter.
  • Для отображения на экране см. High Resolution Guidelines for OS X.
Смежные вопросы