python标志图片_python图片加水印 - 小众知识
图片加“水印”的制作过程;我们经常会看见一些地图网站的地图切片上都有一个l;很明显吧!;这样logo是怎么加上去的呢?我就花了点时间在网;现在我就介绍下实现所谓“水印”的效果是什么样的一;一、Python环境的配置;Python环境配置很简单,若你安装了ArcGI;二、Logo的制作;Logo在这里我觉得只分为两种,一种是文字,另一;Logo
图片加“水印”的制作过程
我们经常会看见一些地图网站的地图切片上都有一个logo标志,例如下图上面就有一个标志,
很明显吧!
这样logo是怎么加上去的呢?我就花了点时间在网上查了查资料,原来网上的方法很多,但是我更倾向使用Python来实现这个东西。Python脚本的优点在这里就不具体介绍了,虽然Python我会的只是点皮毛,但是解决些常规问题还是可以的。
现在我就介绍下实现所谓“水印”的效果是什么样的一个过程:在我具体操作之后,觉得整个过程分为3个部分
一、 Python环境的配置
Python环境配置很简单,若你安装了ArcGIS DeskTop,则只需要安装一个python包,PIL图片处理库,这个库对图片处理的功能很强大(The Python Imaging Library (PIL) allows you to create, modify, and convert image files in a wide variety of formats using the Python language.)。环境配置好了就可以进行下一步工作了。
二、 Logo的制作
Logo在这里我觉得只分为两种,一种是文字,另一种是图片。文字是指把文字直接加到图片上去,成为“水印”,而后者则是把图片加到图片上成为“水印”。在这里只介绍下图片类型,是因为好多很好看的Logo都是图文并茂的。
Logo制作,在这里我只在PS里试了下,主要注意几点,Logo必须PNG格式的图片,而且最好把Logo做的尺寸不要超过所加图片的尺寸,在这里我所加的图片都是256px*256px的,Logo大小为180px*30px(具体要这么做,只是减少程序里的复杂度),接下来就是PS里操作了,我就不具体说了,Logo如下图(PS水平有限,前面图标的背景轮廓没给除掉):
三、AddLogo.py的代码编写
Python脚本语言很有灵活性,但是它的格式也常会令生手头痛。因为它的语句缩进直接和语句运行顺序有关。有兴趣可以去看看Python脚本的基本语法,你就会明白了!
代码如下:(这些网上都有的,一些高人早就发到网上了,我只是综合整理且实际操作了下)
# -*- coding: utf-8 -*-
import Image, ImageEnhance #引用所需的库
POSITION = ('LEFTTOP','RIGHTTOP','CENTER','LEFTBOTTOM','RIGHTBOTTOM',"title","scale") #Logo的位置
PADDING = 10
MARKIMAGE = r'E:\学习\python\tt1.png' # Logo图片的位置
def reduce_opacity(im, opacity): # 处理Logo的透明度
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(imagefile, markfile, position=POSITION[4], opacity=0.1):
im = Image.open(imagefile)
mark = Image.open(markfile)
if opacity < 1:
mark = reduce_opacity(mark, opacity)
if im.mode != 'RGBA':
im = im.convert('RGBA')
# 创建一个透明层,根据位置 来画Logo.
layer = Image.new('RGBA', im.size, (0,0,0,0))
if position == 'title':
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))
elif position == POSITION[0]:
#左上角
position = (PADDING,PADDING)
layer.paste(mark, position)
elif position == POSITION[1]:
#右上角
position = (im.size[0] - mark.size[0]-PADDING, PADDING)
layer.paste(mark, position)
elif position == POSITION[2]:
#中间
position = ((im.size[0] - mark.size[0])/2,(im.size[1] - mark.size[1])/2)
layer.paste(mark, position)
elif position == POSITION[3]:
#左下角
position = (PADDING,im.size[1] - mark.size[1]-PADDING,)
layer.paste(mark, position)
else:
#右上角
position = (im.size[0] - mark.size[0]-PADDING, im.size[1] - mark.size[1]-PADDING,) layer.paste(mark, position)
# 组合起来就可以啦
return Image.composite(layer, im, layer)
new_image_s_filename=r"E:\学习\python\test.png" # 要加水印的图片
watermark(new_image_s_filename,MARKIMAGE,POSITION[2],opacity=0.2).save(new_image_s_filename,quality=90)
双击运行AddLogo.py文件就可以了。效果如下图:
效果就是这样,至于和人家的效果有差别,很正常啊,因此,我们在logo制作上有待改进,logo美观和标志性,添加到图片上还要选择适当logo的透明度,这些都要考虑。
好了若你想把很多图片,例如咱们地图切片数据添加“水印”,就很方便了,在这基础上加个循环就OK啦,即使你有成千上万张图片都是小Case了,只要电脑实力够强大,你只要双击运行脚本程序,就把任务交给电脑来做了,它会很快的完成任务,而你就可以在这个时间中去打打篮球了!
我们都知道图片加“水印”主要是版权保护之举,目前这种方法倒是很实用,据我了解目前把水印加上去容易、若再把水印除掉就有点难了,这个过程可逆性难度很大(呵呵,其实一旦人家能获取这个Logo原始图,那就惨了,除去水印就有办法解决了,只是网上的全是PS具体操作,不是用程序来解决这个问题,所以大量的图片要除去水印,那工作量大的吓人啊!不过可能有技术能做到这点,只是我还不知道罢了)
!所以这种加了水印的地图数
据即使被别人Down去再拼起来使用,是大大费功夫的额!至于目前主流的“数字水印”技术,这个方法还不是一个等级上的概念,对“数字水印”技术有兴趣是可以去学习下的,毕竟学海无涯啊!
虽然这个做“水印”的方法早就不是什么难点,但是对于我,通过实际学习,收获很多啊!学海当中,高人无数,只要我们时刻保持拥有一颗对学习充满热情的心,就会在学习知识的道路上获取无尽的快乐,为工作做好坚实的基础!
python标志图片_python图片加水印 - 小众知识相关推荐
- 图片上传(加水印、缩略图、远程保存)的简单例子
图片上传(加水印.缩略图.远程保存)的简单例子(应用于51aspx.com) 该源码下载地址:http://51aspx.com/CV/ImageUpload 今天看到xiongeee发的文章使用使用 ...
- 照片如何批量加水印怎么弄?图片如何批量加水印?
很多电商老板给图片添加水印,不仅可以更好地保护图片版权,也可以到达宣传效果.如果一张一张的添加水印耗费大量时间,而且极大影响工作效率.图片如何批量加水印(https://www.yasuola.com ...
- python给图片加半透明水印_Python 批量加水印就这么简单!
工作的时候,尤其是自媒体,我们必备水印添加工具以保护我们的知识产权,网上有许多的在线/下载的水印添加工具,但他们或多或少都存在以下问题: 在线工具需要将图片上传到对方服务器,信息不安全. 很多工具不具 ...
- python通过qt5添加水印_Python 批量加水印就这么简单!
工作的时候,尤其是自媒体,我们必备水印添加工具以保护我们的知识产权 ,网上有许多的在线/下载的水印添加工具,但他们或多或少都存在以下问题: 在线工具需要将图片上传到对方服务器,信息不安全. 很多工具不 ...
- php 上传加水印,php 图片上传加水印(自动增加水印)
function upload($uploadfile,$watermark=1,$watertype=1,$content){ foreach($uploadfile['name'] as $key ...
- 图片显示时加水印(不改变原图片)
[转]:http://adyhpq.blog.163.com/blog/ 刚刚写了一个在显示图片是加水印的程序(不改变原图片)的程序,写出来和大家分享一下,也许有的人已经早就会了 原理很简单,就是拦截 ...
- java ueditor 图片上传加水印_Ueditor编辑器上传图片加水印【亲测可用】-帝国CMS整合...
Ueditor编辑器上传图片加水印 百度一下,有很多,但是方法都是一样的,写的不清不楚的.对于代码不是很了解的我们,却是头大.我整理了一下,下载下面的压缩包,解压缩之后,直接上传到 ueditor ...
- php 上传加水印,PHP 图片上传加水印实例
function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$t ...
- java图片加水印上传工具类_基于Spring Boot实现图片上传/加水印一把梭操作
文章共537字,阅读大约需要 2分钟 ! 概述 很多网站的图片为了版权考虑都加有水印,尤其是那些图片类网站.自己正好最近和图片打交道比较多,因此就探索了一番基于 Spring Boot这把利器来实现从 ...
最新文章
- 简练软考知识点整理-控制干系人参与
- 【从零开始学BPM,Day2】默认表单开发
- CSocket类的使用
- 关于 Hybris (SAP Commerce Cloud)产品的客户群
- Linux 中的零拷贝技术
- Mac设置多屏幕的时候程序坞的位置
- windows主机的linux虚拟机中使用neovim复制、粘贴
- android office转pdf插件,office另存为pdf插件下载
- CDA-LEVEL 1 数据分析师一级经验总结
- 阿里云服务平台,分布式架构云平台解决方案
- 客户端,从服务器上下载文件流程
- python面向对象高级
- python提取内容保存excel_Python操作Excel之数据提取
- 抖音赚钱记,新手如何玩转抖音,每天赚300起(连载九)
- Mysql常用类型和字段属性
- docker中遇到Error response from daemon: Container 27dd9d9ed900a0f03f7c7a0f6f9babcd84290c9cfbb02b492bde2
- 如何用Python控制LEGO Wedo 2.0的电机
- 关于word粘贴图片无法显示的原因
- 金仓数据库KingbaseES 插件kdb_database_link
- 【项目总结】stm32红外循迹蓝牙超声波小车