【问题标题】:Programmatically change image resolution以编程方式更改图像分辨率
【发布时间】:2012-02-07 10:09:39
【问题描述】:

我计算过,如果我希望生成的图像为 A4 尺寸 @ 600dpi 用于打印,则它需要为 7016x4961px @ 72dpi。所以,我以编程方式生成它,然后在 Photoshop 中对其进行测试,它似乎很好,所以如果我调整它的大小,它会得到适当的大小和分辨率

我想知道的是是否可以通过编程方式调整大小,最好使用 PIL,但不一定使用它。我需要让它更高的 DPI。

【问题讨论】:

  • 如果你真的在生成它,出于对飞行意大利面条怪物的热爱,请以所需的分辨率生成它。如果你真的需要升级,stackoverflow.com/a/1750331/180174 :)
  • 其实我是用html5画布生成的,然后用nihilogic.dk/labs/canvas2image的image2canvas保存,所以我不能在那里控制DPI。有什么想法吗?
  • 在您的问题中,“72 dpi”令人困惑。如果您的意思是(如我所想)“如何将 7016x4961 像素图像的分辨率设置为 600dpi,以便将其打印在 A4 上?”然后你可以用 PIL 来做,正如我在我的回答中解释的那样。

标签: python image resolution dpi


【解决方案1】:

如果您生成了 7016 x 4961 像素的图像,则它已经是 600 dpi 的 A4。所以你不需要调整它的大小,你只需要在文件中设置分辨率信息。

你可以用 PIL 做到这一点:

from PIL import Image

im = Image.open("test.png")
im.save("test-600.png", dpi=(600,600))

【讨论】:

    【解决方案2】:

    此代码将使用 PIL 将 PNG 图像的大小调整为 7016x4961:

    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)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多