2013-02-12 6 views
2

Все кажется довольно стандартным, я загрузил PDF GENERATION SAMPLE и использовал свои собственные ресурсы при нормальных разрешениях, а мои изображения немного выглядели.Размытые изображения при рендеринге в PDF с использованием UIKit/Coregraphics

Вот актив source

Вот как это выглядит в приложении enter image description here

И это то, что она выглядит в формате PDF на 100% увеличения enter image description here

код в функции DrawImage является так же просто, как он получает

UIImage * demoImage = [UIImage imageNamed:@"icon_map_project.png"]; 
[demoImage drawInRect:CGRectMake((pageSize.width - demoImage.size.width)/2, 
           350, 
           demoImage.size.width, 
           demoImage.size.height)]; 

Ничего необычного. Я признаю, что мое знакомство с подробностями о том, как работают PDF, DPI и тому подобное, находится вне меня.

Я посмотрел на LibHaru и думаю, что это отличная система, но я предпочел бы сохранить это в пределах UIKit/CoreGraphics.

Вы заметите странную зубчатость с правой стороны, даже уменьшая изображение на 50%, похоже, не помогает.

Вот увеличенный до изображения с помощью цветной цифровой измеритель с PDF на 100%, а затем приложение enter image description here

Как вы можете видеть изображение просто не делает правильно в PDF, и я изо всех сил, чтобы найти решение для этого.

Спасибо за любой совет.

+0

Вы подтвердили, что '(pageSize.width - demoImage.size.width)/2' является целым числом? Если либо 'pageSize.width', либо' demoImage.size.width' является нечетным, а другое четным, то начало вашего прямоугольника не будет целым числом, поэтому оно не будет на границе пикселя (на не- Экран сетчатки). –

+0

Я протестировал его, изменив X прямоугольника, чтобы быть целым, но безрезультатно. Спасибо за помощь. – Biclops

ответ

1

Вы рисуете изображение в формате PDF в прямоугольнике, соответствующем размеру изображения. Это приводит к 72dpi для изображения. Поскольку приложение-зритель использует 96dpi или более высокое значение в качестве ссылки для 100-процентного масштабирования, когда файл отображается на 100%, ваше изображение будет отображаться в масштабе 100% * 96/72. Если вы увеличите растровое изображение в этом масштабе с помощью инструмента обработки изображений, вы увидите подобную зубчатость. Решение состоит в том, чтобы использовать изображение большего размера, нарисованное в прямоугольнике 37x36pt, так что результирующее изображение dpi будет выше.
Если вы увеличиваете размер файла PDF до 75%, размер изображения, отображаемого на странице, должен соответствовать размеру изображения в приложении (это предположение основано на 96-ти dpi экране).

+0

Я подозревал столько же. Я начну сокращать свои изображения или увеличивать их, если позволяет мой источник. У меня был еще один вопрос, знаете ли вы, почему масштабирование и из-за PDF-файлов вызывает эти артефакты? Левое изображение находится на уровне 100%, а другое - очень близко. Вы заметите, что на маленьком изображении есть маленькие артефакты на верхней и правой стороне мяча. Изображение уменьшено на половину, но было уменьшено округление, когда оно было уменьшено, исходное изображение было 45, 44. http://i.imgur.com/svnRVS8.png – Biclops

+2

Есть две возможные причины для артефактов : 1. CoreGraphics может перепрограммировать изображение при вставке его в файл PDF (это предположение, я точно не знаю); 2. Алгоритм масштабирования, используемый приложением просмотра для отображения изображения. Здесь вы ничего не можете сделать. – iPDFdev

+0

Благодарим вас за помощь. – Biclops

Смежные вопросы