我正在尝试使用 python Wand 调整图像大小,保留纵横比并用透明度填充剩余位置。例如,我想在保持纵横比的同时调整一个大矩形的大小以适应 100x100 图像,但我想将图像返回为 100x100,并在间隙中填充透明度。这可以使用魔杖吗?
我测试了 img.resize() 和 img.transform() ,它似乎只保留了纵横比而不是请求的图像大小。
如果 Wand 无法做到这一点,还有其他图书馆可以做到吗?
谢谢您的帮助!
我正在尝试使用 python Wand 调整图像大小,保留纵横比并用透明度填充剩余位置。例如,我想在保持纵横比的同时调整一个大矩形的大小以适应 100x100 图像,但我想将图像返回为 100x100,并在间隙中填充透明度。这可以使用魔杖吗?
我测试了 img.resize() 和 img.transform() ,它似乎只保留了纵横比而不是请求的图像大小。
如果 Wand 无法做到这一点,还有其他图书馆可以做到吗?
谢谢您的帮助!
我的解决方案是创建一个空白的外部图像来放置转换后的图像。这会产生预期的宽度和高度,同时在保留纵横比的范围内拟合图像。
def resizeImg(sourceFile, destFile, width, height):
with Image(width=width, height=height) as outerImg:
with Image(filename=sourceFile) as img:
img.transform(resize="%dx%d>" % (width, height))
outerImg.format = img.format.lower()
outerImg.composite(img, left=(width - img.width) / 2, top=(height - img.height) / 2)
outerImg.save(filename=destFile)