Программно изменить разрешение изображения - PullRequest
8 голосов
/ 07 февраля 2012

Я подсчитал, что если я хочу, чтобы мое сгенерированное изображение было размером A4 при 600dpi для печати, оно должно быть 7016x4961px при 72dpi. Итак, я генерирую его программно, затем тестирую в Photoshop, и, кажется, все в порядке, поэтому, если я изменю его размер, он получит надлежащий размер и разрешение

Image size dialog in Photoshop.

Что меня интересует, так это то, можно ли сделать это изменение программно, желательно с PIL, но не обязательно с этим. Мне нужно сделать его выше DPI.

Ответы [ 2 ]

16 голосов
/ 07 февраля 2012

Если вы сгенерировали изображение размером 7016 x 4961 px, оно уже имеет формат A4 с разрешением 600 точек на дюйм.Таким образом, вам не нужно изменять его размер, вам просто нужно установить информацию о разрешении в файле.

Вы можете сделать это с помощью PIL:

from PIL import Image

im = Image.open("test.png")
im.save("test-600.png", dpi=(600,600))
10 голосов
/ 07 февраля 2012

Этот код изменит размер изображения PNG в 7016x4961 с PIL:

size = 7016, 4961
im = Image.open("my_image.png")
im_resized = im.resize(size, Image.ANTIALIAS)
im_resized.save("my_image_resized.png", "PNG")

Возможно, лучшим подходом было бы сделать ваш холст в x раз больше до печати, где x является факторомВы должны выяснить (7016x4961 в размере для этого конкретного изображения).

...