如何使用PythonMagick渲染PNG时设置背景颜色

Mic*_*son 21 python imagemagick

我正在尝试使用PythonMagick渲染SVG-> PNG,但似乎忽略了背景颜色.

使用ImageMagick命令,事情按预期工作:

tmp$ convert -background none access.svg access.png
tmp$ convert -background red access.svg access2.png
Run Code Online (Sandbox Code Playgroud)

这分别导致透明和红色背景.

但是使用PythonMagick,似乎忽略了背景颜色:

import PythonMagick
svg = PythonMagick.Image('access.svg')
svg.backgroundColor().to_std_string()
'#FFFFFFFFFFFF'
svg.backgroundColor().alpha()
0.0
svg.backgroundColor('none')
svg.backgroundColor().to_std_string()
'#0000000000000000'
svg.backgroundColor().alpha()
1.0
svg.write('access.png')
svg.backgroundColor('red')
svg.backgroundColor().to_std_string()
'#FFFF00000000'
svg.backgroundColor().alpha()
0.0
svg.write('access2.png')
Run Code Online (Sandbox Code Playgroud)

检查输出显示两个png都具有白色背景.是否有另一种设置背景颜色的方法,以便在写入图像时识别它?

小智 0

如果它与命令一起使用,我没有看到问题,然后使用这个:

image = 'convert -background red access.svg access.png'
os.system(image)
Run Code Online (Sandbox Code Playgroud)

并且不要忘记导入 os

import os
Run Code Online (Sandbox Code Playgroud)

另外,您可以在命令中使用变量(不要忘记重命名变量):

image = 'convert -background '+background+' '+file_from+' '+file_to
Run Code Online (Sandbox Code Playgroud)

  • 这不是一个非常便携的解决方案。 (5认同)