Python Wand库
ImageMagick 是一个用于图像格式转换的实用程序,它经过广大社区的支持,因为它支持多种图像格式,并且执行精确且简单。我们可以从PDF格式文件中获取图像。
在下面的教程中,我们将讨论由 Imagemagick 开发的用于Python的绑定 wand 。我们将使用不同的示例在Python编程语言中了解Wand库的特点和用法。
所以,让我们开始吧。
了解Python中的Wand库
wand 是为Python编程语言开发的 ImageMagick 库。此库支持Python版本2.6、2.7、3.3+和PyPy中 ImageMagick 或 Imagick API的功能。Wand用于打开和操作图像。此库不仅支持图像处理,还通过 NumPy 库为机器学习代码提供了有价值的功能。Wand提供了大量用于操作图像的函数。以下是Python wand 库的一些用途:
Python Wand库的用途
- wand 库用于读取/写入各种格式的图像,并用于将图像从一种形式转换为另一种形式。
- 它还支持图像缩放和裁剪。
- 此库向图像添加简单特效。
- 此库还向图像添加特殊效果。
- 它还用于转换图像。
- 它还支持其他颜色增强功能。
现在,让我们安装Python的 wand 库。
如何安装wand库
我们可以使用pip安装程序使用以下命令安装 wand 模块:
语法:
$ pip install wand
模块将安装在系统中作为Python和pip的版本。
正如我们讨论过的, wand 库是一个 Imagick API,因此我们还必须包含 Imagick 的依赖项。对于 Imagick 的依赖项的安装过程在不同的操作系统中有很大区别。
对于Ubuntu / Debian
语法:
$ sudo apt-get install libmagickwand-dev
对于Mac(使用Brew安装程序)
语法:
$ brew install imagemagick
MacPort的安装:
语法:
$ sudo port install imagemagick
注意:如果使用MacPort未安装Python,则必须按照下面的示例导出MAGICK_HOME:
语法:
$ export MAGICK_HOME=/opt/local
对于Windows
我们可以自己创建ImageMagick; 但是,它需要一个构建工具链,如Visual Studio才能进行编译。 一个简单的方法是下载一个预编译的ImageMagick二进制文件,适用于相应的架构(win32或win64)
我们可以从以下链接下载:
https://www.imagemagick.org/download/binaries/
验证安装
为了检查模块是否已正确安装在系统中,我们可以尝试导入模块并执行程序。
安装完成后,请创建一个新的Python文件并在其中键入以下语法。
示例:
# importing the required module
import wand
现在,保存文件并在命令提示符中使用以下命令运行文件。
语法:
$ python .py
如果程序运行时没有引发任何导入错误,则模块已经正确安装。否则建议重新安装该模块并参考它的官方文档。
现在,让我们开始使用wand库。
使用Python Wand读取图像
Python的 wand 库的 image 模块允许程序员使用其 Image 模块导入图像文件。然后我们可以使用不同的属性来读取图像,例如 height 、 width 等等。
让我们考虑以下示例。
示例:
# Importing library from the wand
from wand.image import Image
# Importing the image
with Image(filename ='jtp_logo.png') as my_pic:
# Reading the image to fetch original dimensions
print('Height of the image:', my_pic.height)
print('Width of the image:', my_pic.width)
输入图像:
输出:
Height of the image: 33
Width of the image: 150
解释:
在上面的代码片段中,我们从wand.image库中导入了Image模块。然后我们使用Image()函数从目录中导入图像。接着我们使用不同的属性来读取输入图像的尺寸。结果,程序将图像的尺寸(高度和宽度)返回给用户。
使用Python Wand模糊图像
wand库允许程序员使用blur()函数对图像进行模糊处理,并使用save()函数保存图像。
让我们考虑以下示例来理解这个。
示例:
# Importing library from the wand
from wand.image import Image
# Importing the image
with Image(filename ='jtp_logo.png') as my_pic:
# Invoking blur function with radius 0 and sigma 3
my_pic.blur(radius = 0, sigma = 3)
# saving the processed iamge
my_pic.save(filename ="blur_img.png")
输入图片:
输出:
说明:
在上面的代码片段中,我们从 wand.image 库中导入了 Image 模块。然后我们从目录中导入所需的图像,并使用 blur() 函数,将 radius 参数设置为 0 ,将 sigma 参数设置为 3 。最后,我们使用 save() 函数将文件保存为指定的新文件名。
因此,提供的图像将以半径为0和sigma为3的模糊效果保存为指定的文件名。
使用Python Wand转换图像
我们还可以使用 wand 库的几个函数来转换图像。让我们通过以下示例来理解。
示例:
# Importing library from the wand
from wand.image import Image
# Importing the image
with Image(filename ='jtp_logo.png') as my_pic:
# Cloning the image in order to process
with my_pic.clone() as my_flip:
# Invoking flip function
my_flip.flip()
# Saving the image
my_flip.save(filename = 'flip-jtp.jpg')
输入图像:
输出:
解释:
在上述代码片段中,我们从 wand.image 库中导入了 Image 模块。然后我们再次从目录中导入了图像文件,并使用 clone() 函数生成了图像。然后我们对克隆的图像使用了 flip() 函数,并使用 save() 函数将结果图像保存到文件中。
结果是,输入图像已成功转换。
使用Python Wand绘制不同图形
Python wand 库还提供了许多函数,可以帮助我们绘制不同的图形。
让我们看下面的示例来了解具体情况。
示例:
# Importing libraries from the wand
from wand.image import Image
from wand.drawing import Drawing
from wand.color import Color
with Drawing() as img_draw:
# Setting Stroke color the circle to black
img_draw.stroke_color = Color('black')
# Setting Width of the circlw to 3
img_draw.stroke_width = 3
# Setting the fill color to 'Yellow'
img_draw.fill_color = Color('yellow')
# Invoking the Circle function with center
# at 250, 250 and radius 125
img_draw.circle((250, 250), # Center point
(125, 125)) # Perimeter point
with Image(
width = 420,
height = 420,
background = Color('green')
) as my_pic:
img_draw(my_pic)
my_pic.save(filename = 'img-circle.jpg')
输出:
解释:
在上面的代码片段中,我们从 wand 库中导入了所需的模块。然后,我们使用 Drawing() 函数绘制了一个圆。然后,我们使用了不同的属性来指定尺寸、颜色和轮廓颜色。然后,我们使用 Image() 函数指定了高度、宽度和背景颜色,并使用 save() 函数将结果图像保存给用户。