Programowo zmień rozdzielczość obrazu
Obliczyłem, że jeśli chcę, aby mój wygenerowany obraz miał rozmiar A4 @ 600DPI do celów drukowania, musi to być 7016x4961px @ 72dpi. Więc generuję go programowo, a następnie testuję w Photoshopie i wydaje się być w porządku, więc jeśli zmienię jego rozmiar, otrzyma odpowiedni rozmiar i rozdzielczość
.
Zastanawiam się nad tym, czy jest możliwość programowej zmiany rozmiaru, najlepiej z PIL, ale niekoniecznie z nim. Muszę zrobić wyższe DPI.
2 answers
Jeśli wygenerowałeś obraz o rozdzielczości 7016 x 4961 px, to jest to już A4 przy rozdzielczości 600 dpi. Więc nie musisz zmieniać jego rozmiaru, wystarczy ustawić informacje o rozdzielczości w pliku.
Możesz to zrobić z PIL:
from PIL import Image
im = Image.open("test.png")
im.save("test-600.png", dpi=(600,600))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-09 20:43:25
Ten kod zmieni rozmiar obrazu PNG na 7016x4961 za pomocą 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")
Być może lepszym rozwiązaniem byłoby zwiększenie płótna x
razy przed drukowaniem, gdzie x
jest czynnikiem, który musisz ustalić (rozmiar 7016x4961 dla tego konkretnego obrazu).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-11 02:25:19