gpt4 book ai didi

pdf - ImageMagick 将 pdf 转换为具有固定宽度或高度的 png

转载 作者:行者123 更新时间:2023-12-02 21:11:32 28 4
gpt4 key购买 nike

我正在使用 ImageMagick 的转换方式将 PDF 文件转换为 PNG:

convert -density 150 file.pdf -quality 100 res.png

问题是,根据文件内容,结果图片的大小不同。如何为结果图片选择特定的最大高度和最大宽度(以像素为单位)?

最佳答案

更新答案

从您的评论中,我想我现在更好地理解您想要什么。所以,我认为你需要的身份是这样的:

Required Resolution       Required Height
------------------- = ---------------
Current Resolution Current Height

但请记住,这适用于 X 和 Y 方向。因此,让 ImageMagick 计算出获得所需输出大小所需的 x 分辨率和 y 分辨率 - 使用 ImageMagick 的 fx 方法更容易做到这一点,因为它适用于 Windows 和 Linux我碰巧知道您已经安装了 ImageMagick,而您可能没有 bc 或 Windows 上的任何东西来进行数学运算:

#!/bin/bash
# New width and new height that you want
nh=1000
nw=500

# Calculate Resolution needed in Height
rh=$(identify -format "%[fx:int(($nh*resolution.y)/h)]" doc.pdf)
echo $rh

# Calculate Resolution needed in Width
rw=$(identify -format "%[fx:int(($nw*resolution.x)/w)]" doc.pdf)
echo $rw

因此,如果我在一个尺寸为 595x842 的名为 doc.pdf 的文件上使用它,它会输出 85 和 60 的 x 和 y 密度。如果我然后使用

convert -density 85 doc.pdf a.jpg

它的分辨率为 702x994 - 接近我想要的 1000 高度

如果我使用

convert -density 60 doc.pdf a.jpg

它的分辨率为 496x702,接近我想要的 500 宽度。

在前述内容中,您可以只使用:

identify -format "%[fx:int(($nh*resolution.y)/h)]" doc.pdf

而不是像我一样将结果分配给变量 - 我这样做只是因为我通常想稍后使用该变量。

原始答案

只需在转换后添加一个-resize WIDTHxHEIGHT即可设置您想要的尺寸。因此,具体来说,如果您希望它不超过 1500x2000,同时保留原始宽高比,请执行以下操作:

convert -density 150 file.pdf -quality 100 -resize 1500x2000 res.png

如果您希望它的宽度不超过 800 像素,并且不关心高度,请执行以下操作:

convert -density 150 file.pdf -quality 100 -resize 800x res.png

如果您希望它的高度不超过 1000 像素,并且不关心宽度,请执行以下操作:

convert -density 150 file.pdf -quality 100 -resize x1000 res.png

如果您喜欢“镜厅”效果,并且希望它达到 1200x1800 的尺寸,并且不管宽高比如何,请执行以下操作:

convert -density 150 file.pdf -quality 100 -resize 1200x1800! res.png

关于pdf - ImageMagick 将 pdf 转换为具有固定宽度或高度的 png,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33177437/

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