Pgmagick按宽度调整图像大小

2024-09-26 18:14:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用graphicsmagick对图像执行简单的操作,例如调整大小、裁剪等,并且我尝试通过python使用pgmagick。在

为了调整大小,脚本发出以下命令

gm convert image.jpg -resize 80x ...

根据宽度调整法师的大小是我主要关心的,上面的命令和我预期的一样,只考虑了调整大小的宽度。 使用pgmagick,我尝试如下所示的相同操作:

^{pr2}$

pgmagick的刻度似乎与参数不符。上面的代码按宽度或高度缩放图像,这两者都是合适的。例如,如果图像的维度为240x320,则生成的图像的维度为60x80。在图形方面,它表现为

gm convert image.jpg -resize \>80x -resize x80\> ...

如何使用pgmagick根据宽度缩放图像?在


Tags: 图像image命令脚本convert宽度jpggraphicsmagick
1条回答
网友
1楼 · 发布于 2024-09-26 18:14:10

不幸的是,在pgmagick中找不到实现“resize”的方法,因为它使用c++api,目前它只支持scale op。在

但实施起来却很难看:

def resize(new_size):
     g = pgmagick.Geometry(new_size) # distinguishes whether width, height or both given
     image = pgmagick.Image(img)
     rw, rh = image.size()
     w, h = g.width(), g.height()
     if w and not h:
         g.height(int(rh * w * 1.0/rw))
     elif h and not w:
         g.width(int(rw * h * 1.0/rh))

     image.scale(g)

如果宽度在调整大小时很重要,则根据宽度和高度分别调整最终大小。例如:一个240x360的图像将通过resize('80x')调整大小,然后函数以360*80/240计算最终高度,并将图像缩放用作图像比例尺('80x120'),否则仅直接使用比例将生成53.3x80的新图像

相关问题 更多 >

    热门问题