精华内容
下载资源
问答
  • 如何自己的照片制作水印

    千次阅读 2018-03-13 18:49:52
    )[+]诱因原理图片水印文字水印完整代码使用方法help命令单张图片水印单张文字水印批量图片水印批量文字水印注意与拓展注意编码问题文字水印自适应拓展总结今天来分享一个自己做的实用工具,那就是为图片添加水印。...

    目录(?)[+]

    今天来分享一个自己做的实用工具,那就是为图片添加水印。最大的特点就是支持文字水印(可以为汉字,英文),也支持图片水印。既可以单张图片加水印,也可以支持批量图片加水印。

    诱因

    我本人平时喜欢写点博客什么的,所以不可避免的会使用贴图,然而目前(2016年11月27日)而言CSDN上还不能有效的为自己的图片自动的添加水印。所以这给那些爬取博客作为自己网站博客的网站提供了可乘之机。

    比如: 自己在CSDN上的原创,却被其他占据了头条。 
    被人盗用

    先不说自己的文章质量怎么样,无论好与坏,都是自己一个字母一个字母敲出来的,多少也有点苦劳。但是被别人不加声明的就弄走了,这就让人有点幽怨了。更有甚者,还会加上他们自己网站的水印,“成了他们原创的了”。··· ···

    于是,为了给自己一个交代。决定写个小工具。自己给自己的图片添加水印,自己保护自己吧。

    原理

    图片水印

    对图片水印而言,我们就可以这样理解:把一张图片粘贴到另一张图片上。只不过这是使用代码实现的罢了。

    文字水印

    文字水印稍微有点不太一样。但是原理上其实也是差不多的。那就是先使用PIL生成一张背景图,然后再这张图片上放上一些文字(对于汉字需要额外的做些处理)。最后使用图片水印的原理把这张生成的图片作为水印添加到另一张图片上。

    完整代码

    下面贴出完整代码,有需要的请自取。

    # coding:utf-8
    import sys
    
    reload(sys)
    sys.setdefaultencoding('utf8')
    #    __author__ = '郭 璞'
    #    __date__ = '2016/11/26'
    #    __Desc__ = 单个,批量给图片添加水印,既可以使用文字水印,\
    # 也可以使用图片水印(默认拥有更高的优先级,如果既指定文字,又指定图片,默认仅采用图片水印)
    
    # 使用PIL操作图片
    from PIL import Image, ImageFont, ImageDraw
    # 获取路径下所有图片
    import os
    # 添加命令行参数
    import argparse
    
    # 使用水印图片作为原材料添加水印,需指定完整路径信息
    def picmark(tomarkpath, markpath):
        image = Image.open(tomarkpath)
        mark = Image.open(markpath)
        layer = Image.new("RGBA", image.size, (0, 0, 0, 0))
        x, y = image.size[0]-mark.size[0]-12, image.size[1]-mark.size[1]-10
        layer.paste(mark, (x, y))
        out = Image.composite(layer, image, layer)
        out.save(tomarkpath)
        print "{} has beed added the watermark successfully :)".format(tomarkpath)
    
    # 生成图片水印素材,以供使用。
    def textgenerate(text='http://blog.csdn.net\nCSDN 郭 璞', textcolor=(0, 0, 0), bgcolor=(255, 255, 255)):
        # After test, those parameters is suitful for Chinese watermark.
        size = len(text) * 12, len(text) * 2
        fontsize = len(text) / 2  if len(text)/2 > 20 else 24
    
        font = ImageFont.truetype('simsun.ttc', fontsize)
        image = Image.new('RGB', size, bgcolor)
        draw = ImageDraw.Draw(image)
        draw.text((size[0] / 7, size[1] / 5), u'{}'.format(text), textcolor, font=font)
        # image.save(r'./asdsadsadsasa.png')
        return image
    
    # 生成文字水印结果,需指定完整路径,第二个参数为生成的文字水印素材,地位相当于一个外部的水印图片。
    def textmark(tomarkpath, markimage):
        image = Image.open(tomarkpath)
        layer = Image.new("RGBA", image.size, (0, 0, 0, 0))
        x, y = image.size[0] - markimage.size[0] - 12, image.size[1] - markimage.size[1] - 10
        layer.paste(markimage, (x, y))
        out = Image.composite(layer, image, layer)
        out.save(tomarkpath)
        print "{} has beed added the watermark successfully :)".format(tomarkpath)
    
    # 获取指定路径下的所有图片,包括png,jpg, jpeg, gif等。可手动拓展。
    def getallpics(dirpath):
        pics = []
        files = os.listdir(dirpath)
        for filename in files:
            if str(filename).endswith('jpeg') or str(filename).endswith('png') or str(filename).endswith('jpg') or str(filename).endswith('gif'):
                pics.append(filename)
            else:
                continue
        return pics
    
    # 批量添加图片水印,默认添加在右下角位置
    def runbatchlywithmark(markpath, dirpath):
        tomarkfiles = getallpics(dirpath=dirpath)
        watermarkname = markpath.split('/')[-1]
        tomarkfiles.remove(watermarkname)
        # print tomarkfiles
        for item in tomarkfiles:
            picmark(item, markpath)
        print "All done!"
    
    # 批量添加文字水印,默认添加在图片右下角位置。会根据需求自动计算出合适大小的文字水印图片
    def runbatchlywithtext(dirpath, text, textcolor=(85, 123, 205), bgcolor=(0,0,0)):
        tomarkfiles = getallpics(dirpath=dirpath)
        # print tomarkfiles
        markimage = textgenerate(text=text, textcolor=textcolor, bgcolor=bgcolor)
        for item in tomarkfiles:
            textmark(item, markimage)
        print "All done!"
    
    
    # 主函数,完成所有业务逻辑处理
    if __name__ == '__main__':
    
        # 声明相关命令行参数信息
        parser = argparse.ArgumentParser(description='Add watermark to your pictures batchly and singly!\n You can also assign the text color or background color.\n')
        parser.add_argument('-t', '--text', type=str, default='CSDN  郭 璞', help='the text you want to attach to the picture!')
        parser.add_argument('-tc', '--textcolor', type=str, default=(85, 123, 205), help='the text color you want!\n Both style like (85, 123, 205) and #XXXXXX can be all right')
        parser.add_argument('-bgc', '--bgcolor', type=str, default=(32, 234, 105),
                            help='the background color you want!\n Both style like (32, 234, 105) and #XXXXXX can be all right')
        parser.add_argument('-dp', '--dirpath', type=str, default=r'./', help='the directory contains pictures you want to attach watermark.\n Default directory is current directory.')
        parser.add_argument('-mp', '--markpath', type=str, help='the watermark picture you prepared already!\n Generally it\'s smaller than raw pictures.')
        parser.add_argument('-spp', '--singlepicpath', type=str, help='the single picture path you want to add watermark.')
        args = parser.parse_args()
    
        # Because of the codec in cmd on windows, utf-8 should be use carefully when attach Chinese text as watermark.
        text = args.text.decode('gbk').encode('utf-8')
        textcolor = args.textcolor
        bgcolor = args.bgcolor
        dirpath = args.dirpath
        markpath = args.markpath
        singlepicpath = args.singlepicpath
    
        # for single picture attaching watermark.
        if singlepicpath:
            # attach text or using mark picture prepared
            if markpath:
                picmark(tomarkpath=singlepicpath, markpath=markpath)
            else:
                markimage = textgenerate(text=text, textcolor=textcolor, bgcolor=bgcolor)
                textmark(tomarkpath=singlepicpath, markimage=markimage)
        else:
            # attach text or using mark picture prepared
            if markpath:
                runbatchlywithmark(markpath=markpath, dirpath=dirpath)
            else:
                runbatchlywithtext(dirpath=dirpath, text=text, textcolor=textcolor, bgcolor=bgcolor)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119

    使用方法

    由于使用了argparse,所以可以很方便的进行命令行参数的使用。如果有什么不懂,直接使用help命令即可。会有详细的使用方式输出。

    help命令

    help命令查看使用方法

    单张图片水印

    要添加图片水印,就需要事先准备好一张效果图了。比如博主准备了一张280X52像素大小的素材。 
    水印素材

    那么为了演示方便,还得找一张要进行水印的图片才行。不妨使用下面的这张图片好了。 
    待加水印原图

    那么正式开始咯。 
    单张图片水印

    单张文字水印

    好了,还是那张图片,这次尝试一下文字水印。 
    除了可以指定-t -tc, -bgc等选项。我们还可以使用默认值,虽然默认值是博主自己的信息,(^__^) 嘻嘻……

    单张文字水印

    批量图片水印

    批量的其实就是把指定目录下的所有的要进行水印的图片添加了水印而已。 
    批量图片水印命令

    然后在测试的文件夹下可以查看到,所有的图片(除了水印图片自身)都被添加了图片水印。 
    批量图片水印效果

    批量文字水印

    同理,下面将演示批量添加文字水印。 
    批量添加文字水印效果

    相信图片右下角的绿色的标示已经很明显了吧。

    注意与拓展

    好了,说完了让人激动的条目。下面可以来聊聊这个工具存在的一些问题吧。

    注意

    编码问题

    首先需要注意的仍然是老生常谈的Python中的编码问题了。默认Python脚本文件以UTF-8编码,而Windows的CMD命令行为GBK编码,所以输入汉字的时候Python解释器就会报错。解决的办法目前是采用硬编码的方式。

    text = args.text.decode(‘gbk’).encode(‘utf-8’)

    源码中有这么一行命令,就是为了将在CMD中输入的汉字转为UTF-8编码,让Python解释器可以正确的运行。

    但是如果您的环境是Linux,那就不能这样写了。否则还是会报出解码异常问题的。 
    所以就需要您自己查看一下自己的环境的编码信息,然后对脚本进行硬编码处理。

    或许,这个时候会有许多不服气的朋友要鼓吹Python3多么多么好了,其实我也不反对,但是个人觉得说这些,没有什么意义。语言是工具,每个人都可以有自己的喜好,没有谁非得按照你的意愿办事,管好自己就行了。题外话了,不多说了。

    文字水印自适应

    脚本中对于文字水印做了一点自适应的处理。但是还不够完善。有需要的话可以自行指定。

    另外,文字水印字体大小同样可以进行处理。

    拓展

    我觉得除了针对上面的问题进行优化之外,还有一个比较大,也比较容易实现的方向。那就是水印位置。脚本中简单的按照博主自己的需求手动的指定为图片右下角了。这一点不是很有普适性。因此可以进一步对脚本进行拓展,以实现人以为会水印的添加。

    总结

    回顾一下,本文主要是介绍了博主从为什么要制作这样的一个工具出发,到一步步的实现,到使用方法以及后续拓展等。

    展开全文
  • 如今网店的商家们到别人的商城去拷贝一些素材来给自己的店铺参考或装饰,这是已是见怪不怪的事了,但诸多商家在采集京东商城的商品主图时都会碰到一个难题,那就是京东官方网站的LOGO水印会默认的加在商品的主图...
  • 视频剪辑的朋友们应该都试过从线上视频平台中获取一些自己所需的素材,而这些素材有些时候是会有水印的,有可能是视频平台自带的水印,也有可能是网友自己加上去的水印。针对这种情况,我们剪辑视频素材的时候,...

    做视频剪辑的朋友们应该都试过从线上视频平台中获取一些自己所需的素材,而这些素材有些时候是会有水印的,有可能是视频平台自带的水印,也有可能是网友自己加上去的水印。针对这种情况,我们剪辑视频素材的时候,水印就会有些碍眼。那么,如何去除视频水印呢?本篇文章,小编教大家操作。

     

    步骤一:

    在浏览器上搜索“水印云”,点击“立即体验”;

    202012101607591312778258.png

    步骤二:

    注册一个账号并登录,点击“视频去水印”;

    图片2.png

    步骤三:

    点击“添加文件”,并本地上传有水印视频;

    图片3.png

    步骤四:

    选择左上角框选工具框选水印“果壳”,选择右上角“开始去水印”,去除水印后,下载文件保存本地电脑即可。

     

    图片4.png

    图片5.png

     

    处理好的效果图如下:

    图片6.png

     

    展开全文
  • 抖音如何去水印?

    2020-05-18 12:28:24
    这段时间在学视频剪辑,那最麻烦就是视频带水印。...只好自己做个小程序了(硬不硬),当时说那时快,两天时间就完工了。 截图去微信扫扫或者搜索“爱解析去水印”小程序,只供学习使用。 ...

    这段时间在学视频剪辑,那最麻烦的就是视频带水印。

    那肿么办呢,哈哈哈哈。

    只好自己做个小程序了(硬不硬),这时说那时快,两天时间就完工了。

    截图去微信扫一扫或者搜索“爱解析去水印”小程序,只供学习使用。

    展开全文
  • 现在大家对自己的图片的保护意识比较中了,所以自己辛辛苦苦出来的图片,我们会加个水印来“宣誓主权”。那今天就要来和大家讲讲,怎么轻松给图片及上水印以及去除水印、怎么给图片加水印? 1、Win 10自带...

    现在大家对自己的图片的保护意识比较中了,所以自己辛辛苦苦做出来的图片,我们会加个水印来“宣誓主权”。那今天就要来和大家讲讲,怎么轻松给图片及上水印以及去除水印。

    一、怎么给图片加水印?

    1、Win 10自带的画图软件

    在win10系统中,有一个自带的画图软件,就是【画图3D】,那我们来看下怎么借助这个软件来为图片添加水印吧。

    1、在软件上打开需要添加水印的图片,再点击左侧的“文件夹——插入”,将水印添加进来。

    2、接下来对水印的位置进行调整,右侧属性栏中也可以对水印进行简单编辑。完成设置后导出图片就行。

    这样就添加好水印了,这里可以看下对比图。

    二、美图秀秀批处理

    【美图秀秀批处理】中也有一个添加水印的功能,而且这个功能可以批量添加水印。操作如下:

    1、运行软件,然后添加图片,点击中间的【水印】按钮,进入水印界面。

    2、然后点击【导入水印】,插入要添加的水印的图片即可。

    3、然后再根据自己的需求,在预览图中调整下水印的位置,可以调整大小,旋转,透明度等。

    完成后将其保存导出就行。下面看看对比图哟:

    三、借助PPT

    平时我们会借助PPT来展示一些内容,但是PPT也能为图片添加水印。

    1、运行PPT后,在软件上添加主图片和水印图片,水印图片最好是透明背景的,若不是透明背景,也可以点击图片【设置透明色】,去除背景色。

    2、调整水印位置,完成后按住【Ctrl】,分别选中两张图片,点击【组合】按钮,让图片合二为一。

    3、完成后,只需要右键点击图片,选择【另存为图片】就行。

    这样就把水印加好了,看看前后对比图:

    四、改图宝

    除此之外,还可以通过在线工具为图片添加水印,比如借助【改图宝】在线图片制作网站。只需要根据网站提示,就能轻松添加水印。

    二、怎么给图片去水印?

    那我们可以为图片添加水印,那怎么给图片去除水印呢?其实也不难。

    1、借助PS

    Ps是一款图片处理软件,当然少不了一个去水印的功能。

    1、可以在软件上添加上有水印的图片,然后点击左侧工具栏的图章工具,选择【仿制图章】。

    2、然后按住Alt键选取仿制区域,也就是水印相似区域,然后通过小圆点直接涂抹水印区域,直到水印区域去除为止。

    去完水印的图片对比图:

    二、迅捷去水印

    这里为大家介绍一款去水印的软件—【迅捷去水印】。这是一款专注于去水印的软件,可以快速去除图片以及视频上的水印。

    图片去水印:

    1、点击软件上的【添加水印】,插入水印图片,然后点击右边工具栏中的【区域框】,调整水印的区域位置,调整好后,选择文件的保存位置,点击【开始】就能去除水印了。

    2、若水印的位置是不规则的,不能使用区域看怎么办?可可以通过工具栏中的【画笔】工具,手动绘制水印的区域,绘制完成后点击【开始】就能去除水印了。

    去完水印后的前后对比图:

    小彩蛋来了~去图片水印比较简单,那么去视频水印呢?【迅捷去水印】里面还有去视频水印的功能哟!

    视频去水印:

    同样在软件上点击【插入视频】,添加有水印的视频,再选择【区域看】,调整水印的位置,还可以选择时间和保存位置,完成设置后点击【开始】就能轻松去除视频水印了。

    是不是很神奇?如果感兴趣的话可以自己试试看哟!直接浏览器搜索【迅捷去水印】即可安装下载啦~

    以上就是为大家介绍的关于图片加水印以及去水印的方法。大家有需要的话不妨一试。

    转载请注明出处。

    展开全文
  • 作者们这样得目的就是对自己作品的种保护行为,使自己的作为不会遭到他人私自挪用用与窜改。在普通的文件、图片中添加水印想必大家都知道如何操作,今天小编就教给大家如何给pdf文件添加水印。 使用工具:××...
  • 如何在直播视频上添加水印Logo

    千次阅读 2017-06-26 17:34:16
    个人发起直播分享自己有趣事如做一餐美食,讲解英语学习过程甚至是带娃小妙招等等,都已经是一件平常事情。 可以说直播目前已经渗透或者说融入了我们生活各个角落。 当然了,有直播就关心别人关注度,...
  • 抖音如何引流自己的精准粉丝?

    千次阅读 2019-05-25 17:23:40
    2.取名(给自己的账号想一个符合自己视频定位的名称,简单易懂,大气,接地气的容易让人产生印象深刻容易记住的名称) 3.包装(给自己的账号进行全方位包装:头像,壁纸,片头片尾,视频水印等)目的:这是账号风格...
  • 数字水印处理小小心得!!!

    千次阅读 2019-05-20 20:37:28
    因为最近帮老师一些,有关数字水印的东西,在这里我想记录一下,自己在这次帮老师数字水印过程中一些小小心得。 在这项目中,我们做的是基于DCT变换数字水印,语言方面用 java 来实现,当中还用到了,...
  • 但是有时工作中会遇到一些没有源文件的水印照片,此时我们又该如何去除这些多余的水印,使照片用到其他地方呢?今天就起来学习几种快速去除水印的方法! 步骤:在浏览器上搜索“水印云”或者网址(如图所示),...
  • 利用Canvas添加水印

    千次阅读 2018-03-17 09:43:34
    由于工作加学习原因,很久没能来博客跟大家分享一下自己的一些技术栈了。今天也是抽空给大家做个简单的分享。 水印在我们的正常工作中还是比较常见的种神操作,尤其像一些带有公司私有专利的时候就需要为其添加...
  • 打开之后发现是有水印的,想下载一下有无水印的,再加点自己的配音是不是就能成为自己的视频,于是我就全网寻找抖音如何去水印、抖音在线去水印等关键字,功夫不负有心人终于找到了 ...只要吧分享的链接,填写进去,就...
  • photoshop制作背景水印讲解 上次讲了如何拼图这是我们的作品更加的有序那么怎样让别人眼就看出是自己的作品呢我们可以加一背景水印淡淡的水印不会影响图片的效果而且还会保护自己的作品不会盗图 这制作水印的...
  • 今天被问到一个问题:如何给切片添加水印。这个之前没过,但是觉得是个很好问题,于是自己就折腾了一番。 惯例先是去百度一番,没找到合适答案,只找到一个通过代码实现方法,数据处理层面并未找到现成...
  • 而一般的引流方法就是在视频上面打上自己的水印,然后上传到各大短视频社区引流。但是,随着视频火热,各大网站对添加水印视频的审核真的是越来越来严重,治理也严重,越来越难了。 还是那句,难并不是代表没有...
  • 为在自己的网站上传的图片加水印好像成了种风尚,成为防止图片盗用图片和宣传网站的种方式。现在就教你如何制作这些水印的、这里有两种为加水印的形式,种是加文字水印种是加图片水印。文字水印如这图...
  • 抖音搬运视频技巧,在抖音里如何搬运视频变成自己的视频?抖音、美拍、西瓜视频某个作者的视频全部下载采集器,固乔视频助手简单吗?这里用抖音为例,教大家一个简单的操作方法。 1、 认识下固乔视频助手。支持...
  • 短视频自媒体红利时期,越来越多的人尝试起了短视频的创作,可是,原创要考虑的因素太多,也极大程度考验一个人的创作能力,于是不少人选择二次剪辑,用固乔视频助手采集到众多的影视视频素材,加入自己的解说,...
  • 1、 大家看下用固乔视频助手可以次性批量采集下载几千视频都不在话下,而且,都能自动把平台水印去除掉,当然,人工图片文字水印不能自动去除,这可以用固乔剪辑助手来批量消除。 2、 接下来我们来演示,...
  • 在线编辑器Fckeditor,适应... 在下载FCKeditor编辑器同时,如果是使用.net版本,还必须下载一个源代码包,在里面有一些功能类,和编译出来DLL文件,存放在BIN文件中,我们所需要做的就是修改源代码,
  • Softii.com人人软件站 -- 为大家实事! (0 0) +-----oOO----(_)----------+ | | | 『人人软件站』 | ... 同时[人人软件站]也不承担用户因使用这些下载资源对自己和他人造成任何形式损失或伤害。
  • 用PHP如何实现解析抖音无水印视频

    千次阅读 2019-11-06 15:58:17
    很多时候你在douyin里看到了一个短视频,想复制下来自己编辑文字来发布,可是视频里的水印却是原者的。这个时候你想把水印去掉,你要如何做呢?这里提供PHP实现去除水印的主要方法,其实很简单。 使用方法: 在php...
  • 交流群是在别人经验里看来,考虑到维护一个时间和经验,使用别人现有群。按照群要求,不许灌水,只能进行专业交流,如果有兴趣,可以考虑考虑 群主授权 如果觉得考研太难就放弃吧,人生苦短,及时行乐。 ...
  • 验证码或者LOGO水印的时,有时会想使用一些比较特殊字体...但对于使用虚拟主机我们来说,想叫服务器商在服务器上帮我安装一个我们需要的一个或多个字体,那是非常困难事情.... 所以只好在CSDN上寻找答案.....
  • 验证码或者LOGO水印的时,有时会想使用一些比较特殊字体...但对于使用虚拟主机我们来说,想叫服务器商在服务器上帮我安装一个我们需要的一个或多个字体,那是非常困难事情.... 所以只好在CSDN上寻找答案.....
  • 我们在写论文或者一些PPT时候,经常会需要画...下面我们通过一个示例演示在电子表格中如何使用Excel本身图形来实现电子表格折线图。 示例线图效果: 用Smartbi制作折线图步骤: 步骤一:插入图形 选中B2至D3
  • Python操作PDF全总结介绍pdfplumber使用方法安装使用简单样例提取单页pdf文字...最近一个小demo需要对PDF进行操作,于是一不而不休本着人人为我,我为人人角度写我在PDF操作时候用到方法,同时也相当于给自己

空空如也

空空如也

1 2 3 4
收藏数 68
精华内容 27
关键字:

如何做一个自己的水印