在互联网上搜索照片时,读者可能经常会看到其中有些图片带有水印的。水印通常采用文本或徽标的形式,用于“覆盖”照片,以指示照片的拍摄者或拥有者的权利。一些专家建议我们在照片添加水印之前,先将其添加到社交媒体上,以防止想要使用和利用自己的人(甚至将其用于犯罪)。当然,水印也仍然可以删除,因此它们不足以保护数字版权。
要在照片上添加水印,我们将使用Pillow库。我们要做的第一件事是安装Pillow(如果您还没有的话):
安装完成后,我们可以继续!
01、添加文字水印
我们将从在照片中添加文字开始。以下使用的图片的原始作者@watcharapong wongsanai拍摄的照片(在俄勒冈州拍摄):
现在,我们将添加一些文字和照片。在这种情况下,让我们添加地址(如:三微授渔)
在这里,我们从PIL导入所需的类:Image,ImageDraw和ImageFront。然后我们创建一个名为watermark_text的函数,该函数采用四个参数,即照片文件的地址,存储有水印的照片的地址,要添加到照片的文本以及最后添加照片的坐标位置。
此外,在此函数中,我们读取照片文件,其地址为第一个参数。然后,我们使用ImageDraw.Draw方法复制这张照片。接下来,我们使用ImageFont.truetype命令创建字体。该字体已成为默认的Pillow库。我们将大小设置为40点。最后,我们将显示结果并保存。这是获得的结果的照片:
接下来,让我们给图像加水印!
02、带有图像的水印
大多数专业摄影师会在照片上添加徽标。用Pillow将照片添加到照片中也不难。让我们学习如何。在此示例中,我们将使用徽标为照片添加水印。
在这里,我们创建一个与第一个函数非常相似的函数,但是不是发送文本,而是发送将用作水印的图像地址。然后,在该功能中,我们读取主照片和水印图像。然后,我们调用paste()方法将水印图像粘贴到具有位置的主照片中,以确定将水印图像粘贴到的位置。得到以下结果。
03、具有图像和透明度的水印
现在,让我们创建一个可以使用透明度的新函数,以便可以删除先前结果中的黑色部分。我在StackOverflow中找到了该解决方案,并进行了一些修改和以下示例:
此新功能的内容与以前几乎相同。只是我们不只是读取水印的照片和图像文件,而且还要获取原始照片的宽度和高度。从原始照片的宽度和高度开始,我们制作一张新照片并赋予透明背景(该照片以RGBA的形式创建了背景(红色,绿色,蓝色和Alpha)。然后,我们将原始照片粘贴到透明照片中,从左上角标记为) (0,0)之后,我们将水印图像粘贴到给定位置,最后保存带水印的照片。上面的结果代码变为:
酷吧?
04、结尾
在这里,我们讨论使用Python和Pillow在照片上添加水印的2种方法。在第一个示例中,我们仅向照片添加文本。仅在第二个示例中,我们才对图像进行了水印处理,但没有获得透明度。我们改进第二个示例代码以在第三个示例中获得透明性。
希望本文对读者有用。编码愉快!
领取专属 10元无门槛券
私享最新 技术干货