2024-05-19 00:20:43 发布
网友
我需要使用ImageMagick,因为PIL没有足够的可用图像功能。但是,我想使用Python。
python绑定(PythonMagick)自2009年以来就没有更新过。我唯一能找到的是使用命令行接口的os.system调用,但这看起来很笨拙。
os.system
有没有任何方法可以直接使用ctypes和某种转换来访问API? 作为最后的手段,有没有其他的图书馆,有大量的图像编辑工具,像我看过的ImageMagick?
ctypes
我发现ImageMagick没有很好的Python绑定,所以为了在Python程序中使用ImageMagick,我必须使用subprocess模块来重定向输入/输出。
subprocess
例如,假设我们需要将PDF文件转换为TIF:
path = "/path/to/some.pdf" cmd = ["convert", "-monochrome", "-compress", "lzw", path, "tif:-"] fconvert = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = fconvert.communicate() assert fconvert.returncode == 0, stderr # now stdout is TIF image. let's load it with OpenCV filebytes = numpy.asarray(bytearray(stdout), dtype=numpy.uint8) image = cv2.imdecode(filebytes, cv2.IMREAD_GRAYSCALE)
在这里,我使用tif:-告诉ImageMagick的命令行实用程序,我想将TIF image作为stdout流。以类似的方式,通过指定-作为输入文件名,您可以告诉它使用stdin流作为输入。
tif:-
-
我建议使用Wand(解释如下)。
我正在寻找与ImageMagick库的适当绑定,这将:
但实际上,python API(绑定)有太多不同的(大多已停止)版本。在阅读了本杰明·施韦泽(Benjamin Schweizer)的一篇精彩的历史综述之后,一切都变得清晰起来(另见他的github wiki):
现在Wand只是ImageMagick的一个(简化的)C API。。API是C编程语言和ImageMagick图像处理库之间的推荐接口。与MagickCore C API不同,MagickWand只使用少数不透明类型。访问器可用于设置或获取重要的wand属性。“(See project homepage)
所以它已经是一个简化的界面,更容易维护。
下面的命令可以根据字母“p”的文本创建图像,这对我很有用:
import subprocess cmd = '/usr/local/bin/convert -size 30x40 xc:white -fill white -fill black -font Arial -pointsize 40 -gravity South -draw "text 0,0 \'P\'" /Users/fred/desktop/draw_text2.gif' subprocess.call(cmd, shell=True)
我发现ImageMagick没有很好的Python绑定,所以为了在Python程序中使用ImageMagick,我必须使用
subprocess
模块来重定向输入/输出。例如,假设我们需要将PDF文件转换为TIF:
在这里,我使用
tif:-
告诉ImageMagick的命令行实用程序,我想将TIF image作为stdout流。以类似的方式,通过指定-
作为输入文件名,您可以告诉它使用stdin流作为输入。我建议使用Wand(解释如下)。
我正在寻找与ImageMagick库的适当绑定,这将:
但实际上,python API(绑定)有太多不同的(大多已停止)版本。在阅读了本杰明·施韦泽(Benjamin Schweizer)的一篇精彩的历史综述之后,一切都变得清晰起来(另见他的github wiki):
现在Wand只是ImageMagick的一个(简化的)C API。。API是C编程语言和ImageMagick图像处理库之间的推荐接口。与MagickCore C API不同,MagickWand只使用少数不透明类型。访问器可用于设置或获取重要的wand属性。“(See project homepage)
所以它已经是一个简化的界面,更容易维护。
下面的命令可以根据字母“p”的文本创建图像,这对我很有用:
相关问题 更多 >
编程相关推荐