您的当前位置:首页正文

python的image用法

2021-01-20 来源:星星旅游


python的image用法

Python是一个高级编程语言,它有一个强大的库——Python Imaging Library (PIL),它提供了许多原始的图像操作。Pillow是受到Python Imaging Library启发的库,提供了非常方便的API,使得我们可以快速操作图像。

Pillow可以使用多种格式读取图像文件(如JPEG、PNG、TIFF、BMP等),并提供了一系列的图像操作函数,像是图像剪切、旋转、缩放、滤波、合并、添加文字等等。Pillow还提供了ImageDraw和ImageFont以便在图片上绘制文本和图形。 首先,我们需要安装Pillow这个库: ```pip install pillow```

安装完成后我们可以先来看一个简单的例子来读取一张图像文件并将其展示出来: ```python

from PIL import Image

im = Image.open(\"example.jpg\") im.show() ```

在这个例子中,我们调用了Pillow的Image类中的open方法来读取example.jpg文件。我们然后可以使用show方法来将图像展示到屏幕上。运行这个代码片段后,我们就可以看到example.jpg文件中的图片了。

接下来,我们将介绍一些更有趣的图像操作。 ## 图像剪裁

将一个图像裁剪为我们想要的区域是很常见的需求。我们可以使用Pillow的Image类中的crop方法轻松实现这个任务。这个方法需要传入图像的左上角和右下角坐标,这样就可以截取出所需区域的图像。下面是一个例子: crop_img = img.crop((300, 200, 500, 400)) crop_img.show() ```

在这个例子中,我们读取了一张example.jpg文件的图像。我们把裁剪后的区域指定为(300, 200, 500, 400),即左上角300,200和右下角500,400的区域。我们将裁剪后的图像展示在屏幕上。运行代码后,我们应该可以看到example.jpg的第2象限上的图像,也就是左上角在(300, 200)的位置,宽度200像素,高度200像素的区域。

如果我们需要旋转一张图像,我们可以使用Pillow的Image类中的rotate方法。这个方法接受一个角度作为参数,并返回旋转后的图像。下面是一个例子: ## 添加文字

在一个图像上添加文字是很常见的需求。我们可以使用Pillow的ImageDraw和

ImageFont类来实现这个功能。ImageDraw类提供了一些方法来在图像上绘制各种形状和文字,而ImageFont则提供了操作字体文件的方式。 下面是一个例子,我们在一张图像上添加一句话: img = Image.open('example.jpg') draw = ImageDraw.Draw(img) text = \"Hello, World!\"

font = ImageFont.truetype('/Library/Fonts/Arial.ttf', size=48) draw.text((100, 100), text, font=font, fill=(255, 0, 0)) img.show() ```

在这个例子中,我们使用Pillow的ImageFont类加载了一个TTF(TrueType Font)字体文件,然后使用该字体文件创建了一个字体对象。我们使用ImageDraw类创建了一个绘图对象,并使用字体和颜色参数调用了text方法向图像中添加了一句话。调用show方法将图像展示在屏幕上。接下来的这个列表总结了一些绘图对象的常用方法: - point(xy, fill=None):绘制一个点,xy为点坐标,fill为颜色。

- line(xy, fill=None, width=0):绘制一条线段,xy为线段两个端点坐标,fill为颜色。

- polygon(xy, fill=None, outline=None):绘制多边形,xy为多边形各个点的坐标,fill为填充颜色,outline为边线颜色。

- rectangle(xy, fill=None, outline=None):绘制矩形,xy为矩形两对角坐标,fill为填充颜色,outline为边线颜色。

- ellipse(xy, fill=None, outline=None):绘制椭圆,xy为外切矩形两对角坐标,fill为填充颜色,outline为边线颜色。

- text(xy, text, font=None, fill=None):绘制文本,xy为左上角坐标,text为文本内容,font为字体对象,fill为颜色。

图像滤波是数字图像处理中一个重要的概念。它在图像的空域或频域进行操作,以改变图像的外观或提取一些有用的信息。Pillow提供了一些方法来处理这些图像滤波操作,其中较简单的例子是调整亮度和对比度。下面是一个例子: enhancer = ImageEnhance.Brightness(img) bright_img = enhancer.enhance(2) bright_img.show() ## 总结

在这篇文章中,我们介绍了Python中使用Pillow来操作图像的一些基础知识。我们学习了如何读取图像文件,如何进行图像的基础操作,以及如何进行图像的滤波操作。我们还介绍了如何使用ImageDraw类来在一张图片中加入自定义的文本和图形等元素。Pillow是一个相当强大的库,可以方便地实现很多有趣的图像应用。

因篇幅问题不能全部显示,请点此查看更多更全内容