专栏首页Python程序员杂谈Python 中使用 Pillow 处理图片增加水印

Python 中使用 Pillow 处理图片增加水印

这个是个比较常见的需求,比如你在某个网站上发布了图片,在图片上就会出现带你昵称的水印。那么在Python中应该如何处理这一类需求呢?

其实在我的《Django实战开发》视频教程中有讲到这一部分,Django结合了xadmin,再集成进来 django-ckeditor之后,有了比较方便的富文本编辑器了,对于图片也就需要增加一个水印的功能。这里把其中的代码抽一部分出来,仅供参考。

需要先安装Pillow: pip install pillow

Demo代码:

import sys

from PIL import Image, ImageDraw, ImageFont


def watermark_with_text(file_obj, text, color, fontfamily=None):
    image = Image.open(file_obj).convert('RGBA')
    draw = ImageDraw.Draw(image)
    width, height = image.size
    margin = 10
    if fontfamily:
        font = ImageFont.truetype(fontfamily, int(height / 20))
    else:
        font = None
    textWidth, textHeight = draw.textsize(text, font)
    x = (width - textWidth - margin) / 2  # 计算横轴位置
    y = height - textHeight - margin  # 计算纵轴位置
    draw.text((x, y), text, color, font)

    return image


if __name__ == '__main__':
    org_file = sys.argv[1]
    with open(org_file, 'rb') as f:
        image_with_watermark = watermark_with_text(f, 'the5fire.com', 'red')

    with open('new_image_water.png', 'wb') as f:
        image_with_watermark.save(f)

使用方法: python watermart.py <图片地址>

这个只是把文本嵌入到图片中的实现,其实也可以嵌入一个图片进去的。具体可以参考:

https://pillow.readthedocs.io/en/3.1.x/reference/Image.html#PIL.Image.alpha_composite

相关文章:

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://www.the5fire.com/复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Python使用pillow处理图片,很简单!

    double
  • 使用python实现图片增加水印

    处于某些业务需求需要对一些特定的图片增加水印,于是去了解了PIL这个库,可以完美的解决这个问题

    py3study
  • python 实现图片批量加入水印!pillow 入门实战!

    写文章的时候可以设置是否添加水印。可是,有些图片可能想加水印,有些不想加水印,该怎么办呢?

    白玉无冰
  • 深入剖析Python最强大图片处理模块---Pillow

    Pillow作为一个图片模块。可谓是真的简便强大,它的前身是PIL,后来将他取代,现在的pillow 可谓是一家独大,好了,让我们来看看他的具体用法。

    Python进阶者
  • Python图片处理模块PIL操作方法(pillow)

    PIL中所涉及的基本概念有如下几个:通道(bands)、模式(mode)、尺寸(size)、坐标系统(coordinate system)、调色板(palett...

    砸漏
  • (四十五) 初遇python之Pillow图片处理

    各位读者大大们大家好,今天学习使用Pillow进行图片处理,并记录学习过程欢迎大家一起交流分享。

    亚乐记
  • Python使用Pillow(PIL)库实现验证码图片

    验证码是随机的,使用Python内置的random库来生成随机的颜色和随机的字符。

    Python碎片公众号
  • Python基础模块:图像处理模块@PIL(批量分类处理图片及添加水印)

    最近接到一个需求,把一批照片按照分辨率进行分类存储,再将其中指定宽高比的照片设置为特定的分辨率且添加水印。

    可以叫我才哥
  • python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法

    github地址:https://github.com/tesseract-ocr/tesseract

    砸漏
  • Python 批量加水印就这么简单!

    现在只要你会使用命令,我们就能教大家怎么使用Python超级简单地为图片添加水印,而且具备以下特点:

    abs_zero
  • Python使用OpenCV+pillow提取AVI视频中关键帧图像

    问题描述:使用OpenCV把AVI视频切分成静态图像,提取视频中的关键帧,保存为0.jpg、1.jpg、2.jpg.......

    Python小屋屋主
  • 快速学习python图像处理库Pillow及简单案例

    首先我们需要了解一下PIL(Python Imaging Library),它是Python2中非常强大的图像处理标准库,但只支持到Python2.7。Pill...

    吾非同
  • Python 万能代码模版:批量搞图,秀翻全场(上)

    文章都会在公众号首发噢:公众号:AI悦创。博客:https://www.aiyc.top/ 也会同步发送。

    AI悦创
  • 【Python从入门到精通】(二十七)更进一步的了解Pillow吧!

    本文是接上一篇❤【Python从入门到精通】(二十六)用Python的PIL库(Pillow)处理图像真的得心应手❤ 进一步介绍Pillow库的使用,本文将重点...

    码农飞哥
  • 用Python自动化生成倒计时图片

    比如红色表示为(255, 0, 0, 255),其中alpha值最大,意味着完全不透明。

    小F
  • 用python简单处理图片(4):图像中的像素访问

    前面的一些例子中,我们都是利用Image.open()来打开一幅图像,然后直接对这个PIL对象进行操作。如果只是简单的操作还可以,但是如果操作稍微复杂一些,就...

    bear_fish
  • python-PS图片

    py3study
  • Python实现图像空域随机水印加入与提取

    本文要点在于Python扩展库pillow中Image类的运用。图像空域随机水印的主要思路在于:在原始图像中随机选取一些位置替换为水印图片中的非背景像素,同时生...

    Python小屋屋主

扫码关注腾讯云开发者

领取腾讯云代金券