gpt4 book ai didi

imagemagick - 生成具有页面大小和分辨率的图像?

转载 作者:行者123 更新时间:2023-12-02 01:48:07 26 4
gpt4 key购买 nike

我想使用 ImageMagickconvert 动态生成位图。

但是,我想指定页面大小(例如,A4 - 将以英寸/厘米为单位在内部指定),然后以 DPI 指定分辨率 - 而不是直接以像素为单位指定图像大小。

根据我对 convert 选项的研究,我猜测以下命令行可以解决问题:

convert -page A4 -density 300x300 xc:white -pointsize 72 -draw "text 25,60 'test'" test.png

...不幸的是,这会生成一个 .png 图像,其大小为 1x1 像素。

我想要用 convert 实现的功能是否可行?如果没有,是否有其他工具可以用于此目的?

最佳答案

我想,我能得到的最接近的是这个(ImageMagick 6.6.2-6):

convert xc:white -page A4 myout.pdf
convert -density 300x300 myout.pdf -pointsize 72 -draw "text 25,235 'test'" myout.png

请注意:

  • 第一个命令仅为 pdf 生成正确的页面大小(但不适用于 ps)
  • convert 无法在 pdf 这样的矢量文件中“绘制”
  • 在第二个命令中,必须按该顺序给出参数 - 以便将 pdf 作为已知大小的背景,在其上绘制文本。

顺便说一句,获取pdf文件给定密度下的像素大小:

$ convert myout.pdf -format "%[fx:round(w)]x%[fx:h]" info:
595x842
$ convert -density 300x300 myout.pdf -format "%[fx:w]x%[fx:h]" info:
2479x3508

我想,这意味着我想做的事情在单个 convert 命令行中是不可能的......

 

这里还有一个使用渐变的代码:

convert xc:white -page A4 myout.pdf
TSIZE=$(convert -density 300x300 myout.pdf -format "%[fx:w]x%[fx:h]" info:)
convert -density 300x300 -size $TSIZE myout.pdf gradient:\#4b4-\#bfb -pointsize 72 -draw "text 25,235 'test'" -flatten myout.png

请注意,给定密度下的图像大小必须在单独的步骤中检索 - 因为它是渐变所必需的;还要注意 -flatten 的用法(没有它,会生成多个 png 文件)。

引用文献:

关于imagemagick - 生成具有页面大小和分辨率的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5908289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com