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

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

本文介绍如何使用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 相关产品和应用

全部下载

专题列表