Python基于Pillow库实现生成图片水印与尺寸展示

Evan
Evan
发布时间:2026-10-14| 2人浏览过
原创

本文介绍如何使用Python的Pillow库开发一个Web版图片生成工具。通过指定颜色、尺寸和格式,程序可自动生成测试图片,并重点讲解如何添加动态尺寸水印。文中提供了核心代码逻辑、字体路径处理方案及部署注意事项,帮助开发者提升图片测试效率。

背景与需求分析

一、背景

在日常开发工作中,经常需要处理各种尺寸和格式的图片以进行功能测试。频繁从百度或谷歌搜索图片不仅耗时,还容易打断开发思路。作为程序员,应当利用技术手段解决这类重复性问题,通过自动化脚本提升工作效率,这正是编程的核心价值所在。

二、实现

核心实现逻辑

为此,我设计了一个基于Web的图片生成器,用户只需输入颜色、尺寸和格式即可生成指定图片。Python图像处理首选Pillow库,其实现过程相对简单,以下直接展示核心代码逻辑。

代码实现细节


def generate_image(static_dir, image_type, width, height, color):
  print(static_dir, image_type, width, height, color)

  mode = 'RGB'
  width = int(width)
  height = int(height)
  color_tuple = ImageColor.getcolor(color, mode)

  image = Image.new(mode, (width, height), color_tuple)

  image_dir = os.path.join(static_dir, 'image')
  image_name = '%sx%s_%s.%s' % (width, height, int(time.time()), image_type)
  image_path = os.path.join(image_dir, image_name)

  font = ImageFont.truetype('./font/consola.ttf', 96)
  draw = ImageDraw.Draw(image)
  mark_content = '{width}x{height}'.format(width=width, height=height)
  for i, ch in enumerate(mark_content):
    draw.text((60*i + 10, 10), ch, font=font, fill=rndColor())

  image.save(image_path)

  print('image_path:%s' % (image_path))
  return image_path

水印生成与字体处理

这是生成图片的核心逻辑。其中,水印的生成耗费了较多精力。添加水印的主要目的是在图片上直观显示其尺寸,方便使用者快速识别。实现时需调用ImageDraw.text()方法,关键在于根据字体大小设置合适的字间距。经过多次调试与尝试,最终确定了当前满意的显示效果。

关于字体文件,不同操作系统默认查找路径不同:Windows系统通常在c://windows/fonts/目录下查找,而Linux系统则在/usr/share/fonts目录下。为避免部署时因各电脑字体库差异导致显示异常,我将字体文件直接放入代码库中,并通过相对路径引用,确保环境一致性。

预览与资源链接

三、预览

如需查看实际运行效果,可访问在线演示地址:https://nicolerobin.top/image_holder/static/index.html

完整代码库地址:https://github.com/NicoleRobin/image_holder

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。