用Python给图片加水印

超简单~ Python添加水印,三行代码教你批量添加 add_mark()方法一共有8个参数,如果你不知道怎么查看参数,在jupyter notebook可以输入如下命令,即可查看。首先导入模块里面的一个方法,watermarker ,点上 marker ,然后 import add_mark。对啦,下面这个文件夹(也就是运行代码后给你生成的文件)你如果要再次运行的话记得删掉哦,不然会报错的。对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦。 阅读详情

对于某张图片,可能是你精心制作的思维导图,或者你精心设计的某个logo。你可能花费好多时间来弄,最后却被别人直接搬运过去使用,好气哦!

基于此,本文我就带着大家学学如何给你的图片加水印,仅需要2行Python代码,任何人都可以学会。

filestools库介绍

今天给大家介绍的Python库,叫做filestools,由小小明开发,直接使用如下命令,安装后使用。


pip install filestools --index-url=http://mirrors.aliyun.com/pypi/simple -U

这个库一共集成了4个功能,4个库都已经全部迁移到了filestools库中,因此安装这一个库,就可以使用所有的4个功能了,你只需要在使用对应功能,分别导入对应的模块即可。


# 给图片加水印
from watermarker.marker import add_mark

add_mark()方法一共有8个参数,如果你不知道怎么查看参数,在jupyter notebook可以输入如下命令,即可查看。

下面分别为大家讲述add_mark()方法中8个参数的含义,介绍如下 :

  • file: 待添加水印的照片;

  • mark: 使用哪些字作为水印;

  • out: 添加水印后保存的位置;

  • color: 水印字体的颜色,默认颜色#8B8B1B;

  • size: 水印字体的大小,默认50;

  • opacity: 水印字体的透明度,默认0.15;

  • space: 水印字体之间的间隔, 默认75个空格;

  • angle: 水印字体的旋转角度,默认30度;接下来,我们仅用一行代码,给图片添加水印。

一行代码给图片加水印

原图长这样:

使用下面这行代码,仅仅两行代码:


from watermarker.marker import add_mark
add_mark(file=r"aixin.jpg", out=r"C:\Users\Administrator\Desktop\练习", mark="人生苦短,快学Python", opacity=0.2, angle=45, space=30)

加水印后长这样:

最后再为大家解释一下,这一行代码的含义。


add_mark(file=r"aixin.jpg", 

out=r"C:\Users\Administrator\Desktop\练习", 

mark="人生苦短,快学Python",

opacity=0.2, angle=45, space=30)

含义: 给当前工作环境下名为aixin.jpg的图片,添加一张水印。水印字样为快学Python,水印透明度是0.2,水印的旋转角度是45°,水印之间的间隔是30个空格。添加水印后,最后将处理后的图片保存在一个指定目录下。

Python添加水印简简单单,三行代码教你批量添加 打码分享了,就来分享一下添加水印吧 阅读详情

相关推荐

用python给照片添加水印的三种方式

filestools模块其本质上也是对ImageDraw.Draw.text()方法做了进一步的封装,让我们用起来会更加的简便,使用add_mark()方法可以生成数量较多的水印,该方法当中里面有8个参数,其中比较重要的几个是。给照片添加水印的代码多种多样,下面这种的或许是最为简单的形式,然后我们将印有水印的图片和原图进行结合,代码如下。

数据知道的博客 2万+

为了保护优快云版权,我用一行代码就能给图片加水印!

为了保护优快云版权,我用一行代码就能给图片加水印!

数据分析与统计学之美 2652

Python图片加水印

最近写的文章有大量的图片,就想着加个水印,在百度搜代码时发现下面的ai对话可以生成代码.....

qq_39788788的博客 659

Python给图片加水印(非常简单)

今天来分享可以给图片添加水印的方法,十分的简单实用,大家在看了之后也可以私底下去自己试试。

实际工作与学习当中的随记 4981

《【第七篇】图片批量加水印:Python帮你一键添加版权或Logo,告别手动PS,高效保护你的作品!》

还在担心你的原创图片被盗用?想为海量作品批量添加版权声明或品牌Logo,却苦于手动PS效率低下?本文将手把手教你如何利用Python自动化技术,一键实现图片批量加水印!无论是文字水印(自定义字体、颜色、透明度、位置),还是图片水印(Logo、二维码),Python都能帮你轻松搞定。本文提供完整可运行的代码、高清GIF动图演示、效果对比图,让你零基础也能快速上手,打造专属的图片版权保护神器!告别手动P图,高效保护你的作品,让你的视觉内容更专业!

qq_35899016的博客 761

水下探测小白必看:单波束vs多波束声呐,5分钟搞懂核心区别

本文为水下探测新手清晰解析了单波束与多波束声呐的核心区别。单波束声呐如同精准的“手电筒”,进行逐点扫描,适用于定点测深和目标探测;而多波束声呐则像“聚光灯”,能一次性覆盖一个扇区,高效获取海底地形三维信息,是海底测绘和水下三维建模的理想选择。文章通过生动的比喻和对比表格,帮助读者快速理解两者原理、效率差异及适用场景。

linux6sysadmin的博客 1043

Python利用opencv给图片加水印

给图片加水印 有时候为了注明出处或者版权问题,需要在图片或者视频加上水印,今天先讲怎么给图片加水印! 安装opencv库 注意不是这样安装: pip install opencv 以上安装方式会提示错误: Collecting opencv Could not find a version that satisfies the requirement opencv (from versions: ) No matching distribution found for opencv 正确安装如下:

托马斯的博客 829

分享一个简单的迭代学习机器人双臂控制(MATLAB)

1 什么是迭代学习控制 迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大。1984年,Arimoto等人用英文介绍了该方法。它是指不断重复一个同样轨迹的控制尝试,并以此修正控制律,以得到非常好的控制效果的控制方法。 迭代学习控制的特点是“在重复中学习”,通过反复的迭代修正,达到改善控制效果的目的。迭代学习控制的原理是根据系统前次运行所获得的输出误差信息,在控制过程中不断修正控制输入,随着迭代的进行,逐

weixin_45776027的博客 4483

Python脚本实现图片加水印

起步 图片是指由图形、图像等构成的平面媒体,有形式的事物,我们看到的,是图画、照片、拓片等的统称。 为了保护一些原创图片的版权,某些时候我们需要在图片上面,加上水印,当然你可以用Photoshop来做,只不过如果图片数量过多,亦或者图片的动态生成的时候,使用ps将会稍有吃力. 今天小编就交大家用python写一个脚本,实现图片加水印 环境搭建 python3.7 环境:python安装以及版本检测...

秋叶夏风的博客 960

大模型辅助意图识别,更懂你的客户洞察平台

通过大量的学习和训练,大模型不仅具备庞大的知识库,更掌握着丰富的语言模式和语义规则,能够精准地理解每一段对话的含义,为每一通对话进行全面、准确的标注。主要来自客户的行为信息,将客户与机构的重要时刻以时间轴的方式呈现出来,掌握客户生命周期的完整脉络,识别一些容易被忽略的重要营销MOT(Moment Of Truth,关键时刻研究)机会,提示理财经理跟进处理。将客户的历史交易数据和埋点系统采集的客户行为数据结合起来,辅以部分内容资讯的偏好探测,综合分析和预测客户在各个维度的喜好程度,实现千人千面的客户推送。

Dezhuzhineng的博客 2155

手把手教你完成基于matlab的LSTM时间序列分析

时间序列是按时间顺序组织的数字序列,是数据分析中重要的处理对象之一。时间序列的主要特点是数据获取方式一般具有客观性,能反映某种现象的变化趋势或统计指标,进而预测未来走向,这在本质上也是一个回归预测的问题。长短时记忆网络(Long Short-Term Memory,LSTM)是一种循环神经网络,适合处理有更长时间跨度的内部记忆,被广泛应用于时间序列分析,能够保持数据的内在持续性,反映数据的细粒度走势,具有良好的预测效果。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 896

Python给图片加水印

给图片加水印

qq_40178216的博客 1385

excel 如何自动调整行间距 vba

EXCEL是一个非常使用的软件,虽然我们平时仅使用他做一些报表,仅此而已;我在工作中,由于很懒,不愿意做考试重复的工作,就想着使用vba的宏来完成重复的工作,这样就能省出一部分的时间来了。本人不喜欢在博客里面写以下教程类的东西,我的理念是将工作中的痛点的解决办法分享出来,以解决问题为主。

sixtome 1316

python脚本注入图片_Python脚本实现图片加水印

起步图片是指由图形、图像等构成的平面媒体,有形式的事物,我们看到的,是图画、照片、拓片等的统称。为了保护一些原创图片的版权,某些时候我们需要在图片上面,加上水印,当然你可以用Photoshop来做,只不过如果图片数量过多,亦或者图片的动态生成的时候,使用ps将会稍有吃力.今天小编就交大家用python写一个脚本,实现图片加水印环境搭建pillow库的安装pip install pillow直接就上...

weixin_39630813的博客 143

Win10 开机突然蓝屏错误代码0xc0000001安全模式也进不了,不用重装系统怎么修复?(已解决)九个解决参考方案

Win 10专业版HP480G7。

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 1万+

SAPIEN ManiSkill3 入门教程(一)

请注意,table.set_pose(pose) 设置的是演员在世界帧中的坐标系姿势。移除的实体可以再次添加到场景中,但已在场景中的实体则不能再次添加。显示器可以是物理的(如显示器),也可以是虚拟的(如 VNC)。我们可以通过 get_pose()、get_linear_velocity() 和 get_angular_velocity()获取演员的运动量(姿势、线速度、角速度)。现在,让我们创建一个斜坡。例如,您可能需要一个简单的碰撞形状来进行快速模拟,但却需要一个复杂的视觉形状来进行逼真的渲染。

机器人控制与仿真应用 3070

python读取水印_用python来给图片加水印

有时候我想在图片上添加自己的水印来防止别人盗图,所以今天给大家分享如何用python给我们的图片添加上水印。我们先来看看效果。 可以看到右下角就有了我们公众号的名称的水印,是不是超级厉害?那我们看看代码吧,也就20行不到。 前提需要下载好库 PIL,没有的先去下载,这里不多说了。是不是很简单,随便改一下还可以批量添加,还可以改下字体改下文本位置也达到不同的效果。 只需要更改下面两行代码即可# 设置...

weixin_39541750的博客 324

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

不会吧,不会吧,不会还有人不知道Python给图片加水印超级简单哦

不会吧,不会吧,不会还有人不知道❤️Python给图片加水印❤️超级简单哦 文章目录不会吧,不会吧,不会还有人不知道❤️Python给图片加水印❤️超级简单哦介绍安装模块进行添加水印的操作结果的展示: 介绍 我们的图片的版权在有的时候也是十分重要的哦,因此这就需要来给我们的图片去加上水印,当今也确实是有很多的给图片加水印的软件之类的东西的,但是,也许有人还不知道,Python也可以给图片加水印,而且效果良好、操作方便快捷简便。 使用Python进行添加水印可以实现完全按照自己的想法来进行水印的添加,可以自己

江月的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

python水印_用python来给图片加水印

有时候我想在图片上添加自己的水印来防止别人盗图,所以今天给大家分享如何用python给我们的图片添加上水印。我们先来看看效果。可以看到右下角就有了我们公众号的名称的水印,是不是超级厉害?那我们看看代码吧,也就20行不到。前提需要下载好库 PIL,没有的先去下载,这里不多说了。是不是很简单,随便改一下还可以批量添加,还可以改下字体改下文本位置也达到不同的效果。只需要更改下面两行代码即可# 设置字体和...

weixin_39922868的博客 251

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

用python来给图片加水印

有时候我想在图片上添加自己的水印来防止别人盗图,所以今天给大家分享如何用python给我们的图片添加上水印。我们先来看看效果。 可以看到右下角就有了我们公众号的名称的水印,是不是超级厉害?那我们看看代码吧,也就20行不到。 前提需要下载好库 PIL,没有的先去下载,这里不多说了。 是不是很简单,随便改一下还可以批量添加,还可以改下字体改下文本位置也达到不同的效果。 只需要更改下...

sergiojune 1001

Python怎么给图片加水印

在Python中,可以使用PIL(Python Imaging Library)库或者其更活跃的分支Pillow来给图片添加水印

svygh123的专栏 653

python图片水印_用python来给图片加水印

有时候我想在图片上添加自己的水印来防止别人盗图,所以今天给大家分享如何用python给我们的图片添加上水印。我们先来看看效果。 可以看到右下角就有了我们公众号的名称的水印,是不是超级厉害?那我们看看代码吧,也就20行不到。 前提需要下载好库 PIL,没有的先去下载,这里不多说了。是不是很简单,随便改一下还可以批量添加,还可以改下字体改下文本位置也达到不同的效果。 只需要更改下面两行代码即可# 设置...

weixin_29452603的博客 236
上一篇: Python基础语法整理
下一篇: 超详细的Python文件操作知识
python2021_
博客等级 码龄6年 1730粉丝 157原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值