口罩,是一款可以有效防止病毒和细菌侵入人体的防护用具。近年来,由于新型冠状病毒的流行,口罩的需求量大幅增加。在这篇文章中,我们将介绍如何用 Python 画出不同类型的口罩图片。
首先,导入必要的库,包括 NumPy、Matplotlib 和 PIL:
```python
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image, ImageDraw
```
接着,定义几个常用的颜色变量,用于绘制各种图案:
```python
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GRAY = (128, 128, 128)
GREEN = (34, 139, 34)
BLUE = (0, 0, 255)
YELLOW = (255, 255, 0)
ORANGE = (255, 165, 0)
RED = (255, 0, 0)
```
接下来,我们将分别以矩形、圆形和多边形的形式来绘制口罩。先来绘制矩形口罩:
```python
def draw_rect_mask(width, height, color):
img = Image.new('RGB', (width, height), color)
draw = ImageDraw.Draw(img)
draw.rectangle(((int(width*0.1), int(height*0.3)), (int(width*0.9), int(height*0.7))), outline=BLACK, width=2)
draw.rectangle(((int(width*0.2), int(height*0.2)), (int(width*0.8), int(height*0.8))), fill=color, outline=color)
draw.rectangle(((int(width*0.3), int(height*0.3)), (int(width*0.7), int(height*0.7))), fill=WHITE, outline=BLACK)
return img
```
这段代码定义了一个绘制矩形口罩的函数 `draw_rect_mask`,它接受三个参数:宽度、高度和颜色。该函数首先使用 `Image.new` 创建一张空白的图片,并使用 `ImageDraw.Draw` 获取一个绘图对象。然后,我们使用 `draw.rectangle` 绘制一个黑色边框矩形和一个填充色为所选颜色的矩形,以及一个内部白色矩形。
接下来,我们来绘制圆形口罩:
```python
def draw_circle_mask(width, height, color):
img = Image.new('RGB', (width, height), color)
draw = ImageDraw.Draw(img)
draw.ellipse(((int(width*0.1), int(height*0.3)), (int(width*0.9), int(height*0.7))), outline=BLACK, width=2)
draw.ellipse(((int(width*0.25), int(height*0.25)), (int(width*0.75), int(height*0.75))), fill=color, outline=color)
draw.ellipse(((int(width*0.35), int(height*0.35)), (int(width*0.65), int(height*0.65))), fill=WHITE, outline=BLACK)
return img
```
这段代码与绘制矩形口罩的函数很相似,只是使用了 `draw.ellipse` 绘制圆形。
最后,我们来绘制多边形口罩:
```python
def draw_polygon_mask(width, height, color):
img = Image.new('RGB', (width, height), color)
draw = ImageDraw.Draw(img)
points = [(int(width*0.3), int(height*0.3)), (int(width*0.7), int(height*0.3)), (int(width*0.9), int(height*0.5)), (int(width*0.7), int(height*0.7)), (int(width*0.3), int(height*0.7)), (int(width*0.1), int(height*0.5))]
draw.polygon(points, fill=color, outline=BLACK)
draw.polygon([(int(width*0.4), int(height*0.4)), (int(width*0.6), int(height*0.4)), (int(width*0.5), int(height*0.5)), (int(width*0.6), int(height*0.6)), (int(width*0.4), int(height*0.6))], fill=WHITE, outline=BLACK)
return img
```
这段代码定义了一个绘制多边形口罩的函数 `draw_polygon_mask`,它与前两个函数不同之处在于使用了 `draw.polygon` 绘制多边形,其中 `points` 变量用于定义多边形的顶点坐标。此外,我们还绘制了一个内部白色多边形。
我们可以调用这些函数并显示结果:
```python
def show_mask(img):
plt.imshow(np.asarray(img))
plt.axis('off')
plt.show()
color = BLUE
width, height = 200, 200
rect_mask = draw_rect_mask(width, height, color)
circle_mask = draw_circle_mask(width, height, color)
polygon_mask = draw_polygon_mask(width, height, color)
show_mask(rect_mask)
show_mask(circle_mask)
show_mask(polygon_mask)
```
运行该代码,我们可以看到绘制出来的三款口罩:
![矩形口罩](https://i.imgur.com/0yWCpCl.png)
![圆形口罩](https://i.imgur.com/rq3wJdD.png)
![多边形口罩](https://i.imgur.com/7Y9yWmp.png)
总的来说,用 Python 画出口罩的过程并不是很复杂,只需要运用基本的图形绘制函数和一些简单的计算即可。然而,在绘制前要首先明确好图形的样式,需要选择好颜色、尺寸、形状等因素,具体细节的呈现需要花费一定的时间和精力。同时,在绘制时也要注意代码的简洁性和可读性,避免出现冗余和错漏,保证程序的可靠性和正确性。
壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。
我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复