Опция dpi от imsave - PullRequest
       4

Опция dpi от imsave

1 голос
/ 16 апреля 2019

Рассмотрим следующее MWE для генерации случайного изображения:

import matplotlib.pyplot as plt
import numpy as np

pts = np.random.random_sample((1024, 1024))

plt.imsave('foo.png',pts, dpi=300)

Я пытаюсь понять, как работает опция dpi. Согласно документации matplotlib.pyplot.imsave ,

dpi : int

DPI для хранения в метаданных файла. Это не влияет на разрешение выходного изображения.

Выход программы, представленной выше, представляет собой файл изображения 1024x1024.

Что я не понимаю, так это тот факт, что ни identify -verbose foo.png, ни exiftool foo.png не показывают разрешение изображения.

Но, открыв его с помощью ImageMagick (дисплей) и проверив информацию об изображении, я нахожу

enter image description here

Итак, что такое математика за значениями разрешения и размера печати?

Как получить изображение с разрешением 300dpi?

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

В ImageMagick вы можете установить плотность вывода на

convert image <processing> -density 300 newimage


Затем, чтобы проверить плотность, вы можете сделать либо

identify -verbose newimage

or

identify -format "%xx%y"


, чтобы найти плотность(разрешение)

1 голос
/ 16 апреля 2019

Форматы изображений, такие как png, не имеют определенного dpi. Если вы сохраните массив 1024 x 1024 пикселей через imsave, изображение будет просто 1024 x 1024 пикселей.

Imagemagick, похоже, игнорирует любые метаданные, поэтому предполагает разрешение 96 точек на дюйм. Из размера пикселей (1024) и точек на дюйм (96) он затем рассчитывает размер в дюймах, чтобы он был

1024 dots / 96 dots per inch  = 10.667 inch

Тем не менее, вопрос "Как получить изображение с разрешением 300 точек на дюйм?" не совсем понятно. Но большинство средств просмотра графики позволяют масштабировать изображение перед печатью, поэтому не должно быть проблемой получить отпечаток на 300 dpi на бумаге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...