#!/usr/local/bin/python3
#coding=gbk import os, io, sys, re, time, json, random
from PIL import Image, ImageEnhance, ImageFilter def watermark(img_source, img_water, img_new, offset_x, offset_y):
try:
im = Image.open(img_source)
wm = Image.open(img_water)
layer = Image.new('RGBA', im.size, (0,0,0,0))
layer.paste(wm, (im.size[0] - offset_x, im.size[1] - offset_y))
newIm = Image.composite(layer, im, layer)
newIm.save(img_new) except Exception as e:
print(">>>>>>>>>>> WaterMark EXCEPTION: " + str(e))
return False
else:
return True def main():
watermark("original.jpg", "watermark.png", "afterwater.jpg", 250, 50) if __name__ == '__main__':
main()

原图:

水印:

添加水印后:

最新文章

  1. replication_slot and PostgreSQL Replication
  2. NOIP 2013 提高组 day2 积木大赛
  3. 在使用Redis的客户端连接工具ServiceStack.Redis要注意的问题
  4. Ubuntu 安装
  5. Android简易注解View(java反射实现)
  6. 浅谈 Data URI 与 BASE 64 编码
  7. Centos common software install
  8. Nginx 变量漫谈(八)
  9. Android消息推送之GCM方式(二)
  10. 第一百二十二节,JavaScript表单处理
  11. C++玄学预编译优化
  12. POJ 2707
  13. 用HackRF和Gqrx来听FM广播
  14. 嗜血法医第八季/全集Dexter 8迅雷下载
  15. jquery deferred promise
  16. 【杂谈】需要mark的一些东西
  17. SVC 工作过程中出现的错误记录(SEO项目)
  18. 6.2笔记-DQL语句查询数据库
  19. Java项目的结构
  20. xib下这种方式创建cell

热门文章

  1. HDU 1496 Equations hash HDU上排名第一!
  2. 5、linux下应用字符串相关调用函数列举说明
  3. C++中string类的操作函数。
  4. jquery获取元素坐标获取鼠标坐标
  5. RSA公钥、私钥、签名和验签
  6. 如何编辑SDE数据库(转载)
  7. [RxJS] Use RxJS mergeMap to map and merge high order observables
  8. HDOJ 2043 password
  9. PatentTips - Well bias control circuit
  10. js如何使用正则表达式验证电话号码(可选区号)和邮箱?(分步骤)