Установите DPI для QImage

Я рисую текст с помощью QPainter на QImage, а затем сохраняю его в TIFF.

Мне нужно увеличить DPI до 300, что должно сделать текст больше в пикселях (для того же размера точек).


person sashoalm    schedule 16.11.2012    source источник


Ответы (2)


Вы можете попробовать использовать QImage::setDotsPerMeterY() и QImage::setDotsPerMeterX(). DPI означает «точек на дюйм». 1 дюйм равен 0,0254 метра. Таким образом, вы должны иметь возможность конвертировать в точки на метр (dpm):

int dpm = 300 / 0.0254; // ~300 DPI
image.setDotsPerMeterX(dpm);
image.setDotsPerMeterY(dpm);

Это не будет точно 300DPI (на самом деле это 299,9994), так как функции работают только с целыми значениями. Но во всех смыслах этого достаточно (я бы сказал, 299,9994 против 300 — это неплохо).

person Nikos C.    schedule 16.11.2012

В метре 39,37 дюйма. Так:

Настройка:

qimage.setDotsPerMeterX(xdpi * 39.37);
qimage.setDotsPerMeterY(ydpi * 39.37);

Получение:

xdpi = qimage.dotsPerMeterX() / 39.37;
ydpi = qimage.dotsPerMeterY() / 39.37;
person fyngyrz    schedule 11.06.2018