import Image, ImageEnhance
def reduce_opacity(im, opacity):
"""Returns an image with reduced opacity."""
assert opacity >= 0 and opacity <= 1
if im.mode != 'RGBA':
im = im.convert('RGBA')
else:
im = im.copy()
alpha = im.split()[3]
alpha = ImageEnhance.Brightness(alpha).enhance(opacity)
im.putalpha(alpha)
return im
def watermark(im, mark, position, opacity=1):
"""Adds a watermark to an image."""
if opacity < 1:
mark = reduce_opacity(mark, opacity)
if im.mode != 'RGBA':
im = im.convert('RGBA')
# create a transparent layer the size of the image and draw the
# watermark in that layer.
layer = Image.new('RGBA', im.size, (0,0,0,0))
if position == 'tile':
for y in range(0, im.size[1], mark.size[1]):
for x in range(0, im.size[0], mark.size[0]):
layer.paste(mark, (x, y))
elif position == 'scale':
# scale, but preserve the aspect ratio
ratio = min(
float(im.size[0]) / mark.size[0], float(im.size[1]) / mark.size[1])
w = int(mark.size[0] * ratio)
h = int(mark.size[1] * ratio)
mark = mark.resize((w, h))
layer.paste(mark, ((im.size[0] - w) / 2, (im.size[1] - h) / 2))
else:
layer.paste(mark, position)
# composite the watermark with the layer
return Image.composite(layer, im, layer)
def test():
im = Image.open('test.png')
mark = Image.open('overlay.png')
watermark(im, mark, 'tile', 0.5).show()
watermark(im, mark, 'scale', 1.0).show()
watermark(im, mark, (100, 100), 0.5).show()
if __name__ == '__main__':
test()
代码来自:http://www.python-cn.cn/daima/589.html
分享到:
相关推荐
例如,你可以使用PIL(Python Imaging Library)或者OpenCV库来在静态图像上添加水印,而在视频上添加水印则通常需要用到像moviepy这样的专门工具。 总的来说,这个压缩包提供的资源展示了如何利用Python的VTK和...
Python作为一种强大且灵活的编程语言,提供了丰富的库和工具,如PIL(Python Imaging Library)和OpenCV,用于实现不可见水印的添加和检测。 隐形水印则更进一步,不仅要求水印不可见,还要确保在图像的压缩、剪切...
今天在用python3+ImageFont输出中文时,结果显示乱码 # coding:utf-8 from PIL import Image, ImageDraw, ImageFont image= Image.new('RGB', (559, 320),(255,255,255)) draw = ImageDraw.Draw(image) # draw.text...
Python 使用 PIL 缩放网络图片并保存的方法 Python 是一种流行的编程语言,Python Imaging Library(PIL)是 Python 的一个图像处理库,能够对图像进行处理和操作。在网络上,我们可以使用 PIL 库来缩放网络图片,...
Python作为一种强大的编程语言,提供了丰富的库和工具来应对这一挑战,其中之一就是使用“盲水印”技术。本文将深入探讨如何使用Python进行盲水印的应用,以确保创作者的权益不受侵犯。 盲水印,又称为隐性水印,是...
### Python使用PIL模块实现给图片打水印的方法 在图像处理领域,为图片添加水印是一种常见的需求,尤其在版权保护、品牌推广等方面发挥着重要作用。Python 的 PIL(Python Imaging Library)模块提供了丰富的图像...
标题 "watermark_傅里叶变换_python实现盲水印_" 提到的是使用Python进行傅里叶变换来实现一种特殊的水印技术,即盲水印。盲水印是一种在不破坏原始数据可读性的情况下嵌入信息的方法,通常用于版权保护或验证数据的...
本篇将深入探讨如何使用Python编程语言结合离散余弦变换(Discrete Cosine Transform, DCT)原理来实现一个可见水印的添加功能。DCT是一种信号处理技术,广泛应用于图像和音频压缩,如JPEG图像压缩标准中就采用了DCT...
1. 图像读取和分块:使用PIL或OpenCV库读取图像,并将其分割成8x8块。 2. DCT变换:使用numpy的dct函数进行DCT计算。 3. 水印嵌入:在DCT系数中添加水印信息,然后进行逆DCT变换。 4. 压缩攻击检测:对比原始和压缩...
本项目“图像水印.zip”包含了使用Python实现的数字水印添加功能,特别适用于那些希望在自己的图像作品上添加隐形或可见水印的用户。下面我们将详细探讨这个项目涉及的关键知识点。 1. **Python编程语言**:Python...
【标签】"python svd 水印"明确了讨论的主题,Python作为强大的脚本语言,提供了丰富的库支持,如Numpy和PIL(Python Imaging Library),便于进行图像处理和矩阵运算。SVD作为核心算法,用于水印的嵌入和检测。接...
在本项目中,我们主要探讨的是如何利用Python的PyQt5库构建图形用户界面(GUI),结合PIL(Python Imaging Library)库实现批量图像处理,包括重命名和添加水印的功能。这是一份非常适合初学者的实践教程,因为它...
由于公司业务需求,使用python+PIL+opencv等模块实现对图片加水印以及图片缩放比例后加水印,并生成图片base64格式图片,代码里注释很详细,都可以看懂。 图片路径修改成本地图片位置,直接就可以运行。
本项目"blind-watermark-python3.zip"显然是一个使用Python 3实现的盲水印解决方案。下面我们将深入探讨盲水印的概念、其工作原理以及如何使用Python来实现。 **盲水印的定义** 盲水印(Blind Watermarking)是一种...
图像只能用于测试,所有图像都是从Internet收集的。 只需执行RemoveWatermark.py并稍等片刻,您就会在TestImages \ output文件夹... 注意:它仅适用于具有黑色内容和灰色水印的灰度图像,并且可以更改水印颜色的边界值
本篇文章将详细探讨如何使用Python来为图片添加水印,以此来保护版权或者增加个性化标识。 首先,我们需要了解Python中的图像处理库,最常用的是PIL(Python Imaging Library)及其更新版Pillow。Pillow库不仅支持...
本篇文章将深入探讨如何使用Python来根据一个水印图片样本批量去除相同水印。 首先,我们需要引入一些必要的Python库,如PIL(Python Imaging Library)和os。PIL是Python中最常用的图像处理库,它提供了丰富的图像...
8. **Py脚本编程**:使用Python编写盲水印脚本,意味着需要掌握基本的Python语法,以及如何调用上述图像处理库和算法。理解代码逻辑对于解题至关重要。 通过对"blindWatermark.py"这个文件的分析,我们可以学习到盲...