首页 文章 精选 留言 我的

精选列表

搜索[Python],共10000篇文章
优秀的个人博客,低调大师

python-批量添加图片水印

前言: 最近总是被无良公众号和培训机构拷贝文章,他们根本不会给你备注原文出处,这种行为真的让人不高兴,所以计划以后的文章都添加上自己的水印。 话不多说,直接上代码。 一、单张图片添加文字水印 # -*- coding: utf-8 -*- # @Time : 2018/5/9 上午11:31 # @Author : xiaoxi # @File : watermark.py from PIL import Image from PIL import ImageDraw from PIL import ImageFont imageFile = "/Users/截图图库/1.jpg" im = Image.open(imageFile) font = ImageFont.truetype('/Library/Fonts/Songti.ttc', 26) font1 = ImageFont.truetype('/Library/Fonts/Zapfino.ttf', 16) draw = ImageDraw.Draw(im) draw.text((im.size[0]-330, im.size[1]-85), u'简书「小喜」', fill=(134, 153, 153), font=font) draw.text((im.size[0]-500, im.size[1]-45), u'http://www.jianshu.com/u/da1677475c27', fill=(134, 153, 153),font=font1) im.save(r"/Users/简书素材/target.jpg") 二、单张图片添加图片水印 # -*- coding: utf-8 -*- # @Time : 2018/5/9 上午11:31 # @Author : xiaoxi # @File : watermark.py from PIL import Image from PIL import ImageDraw from PIL import ImageFont watermark = Image.open("/Users/截图图库/5.jpg") imageFile = Image.open("/Users/截图图库/4.jpg") layer = Image.new('RGBA', imageFile.size, (0,0,0,0)) layer.paste(watermark, (imageFile.size[0]-300, imageFile.size[1]-80)) out=Image.composite(layer,imageFile,layer) out.save(r"/Users/简书素材/target.jpg") 三、批量图片添加文字水印 # -*- coding: utf-8 -*- # @Time : 2018/5/9 上午11:31 # @Author : xiaoxi # @File : watermark.py import datetime import glob from time import sleep from PIL import Image from PIL import ImageDraw from PIL import ImageFont def watermark(): for files in glob.glob('/Users/截图图库/*.png'): font = ImageFont.truetype('/Library/Fonts/Songti.ttc', 26) font1 = ImageFont.truetype('/Library/Fonts/Zapfino.ttf', 16) im = Image.open(files) draw = ImageDraw.Draw(im) draw.text((im.size[0] - 330, im.size[1] - 85), u'简书「小喜」', fill=(134, 153, 153), font=font) draw.text((im.size[0] - 500, im.size[1] - 45), u'http://www.jianshu.com/u/da1677475c27', fill=(134, 153, 153), font=font1) dir = "/Users/简书素材/" name = datetime.datetime.now().strftime("%Y%m%d%H%M%S") filename = dir + name + '_result.jpg' sleep(2) im.save(filename) if __name__=='__main__': watermark() 四、相关答疑 1、添加中文水印时,必须选择支持中文的字体,例如: 2、glob库 glob库是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用 windows 下的文件搜索差不多。查找文件只用到三个匹配符: ”*”:匹配 0 个或多个字符; “?”: ”?”匹配单个字符; “[]”:”[]”匹配指定范围内的字符,如:[0-9]匹配数字; 以上,如果对你有帮助的话,点个赞吧️~ 作者:搁浅 出处: http://www.cnblogs.com/xiaoxi-3-/ 如果对您有帮助,请关注我的同名简书:https://www.jianshu.com/u/da1677475c27 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

优秀的个人博客,低调大师

Python 调用 selenium chromedriver 常用配置

话不多说,上示例代码 from selenium import webdriver import time chromedriver = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe" #设置不加载图片 chrome_opt = webdriver.ChromeOptions() prefs = {"profile.managed_default_content_settings.images": 2} chrome_opt.add_experimental_option("prefs", prefs) dirver = webdriver.Chrome(executable_path=chromedriver, chrome_options=chrome_opt) dirver.get("https://www.zhihu.com/signup?next=%2F") #获取页面HTML html = driver.page_source dirver.find_element_by_xpath("//div[@class='SignContainer-switch']/span").click() dirver.find_element_by_xpath("//div[@class='SignFlow-accountInput Input-wrapper']/input").send_keys("") dirver.find_element_by_xpath("//div[@class='SignFlow-password']/div/div[@class='Input-wrapper']/input").send_keys("") dirver.find_element_by_xpath("//button[@class='Button SignFlow-submitButton Button--primary Button--blue']").click() cookie = [item["name"] + "=" + item["value"] for item in dirver.get_cookies()] cookiestr = ';'.join(item for item in cookie) print(cookiestr) 上述代码是登录知乎的示例, 其中,send_keys("")填写的是用户名和密码。 首先点击find_element_by_xpath("//div[@class='SignContainer-switch']/span")这个元素切换到输入用户名和密码的界面, 然后使用xpath找到用户名和密码的元素位置,执行send_keys("")方法填充用户名和密码, 最后找到登录按钮,执行点击动作。 cookie = [item["name"] + "=" + item["value"] for item in dirver.get_cookies()] 这行代码是获取登录后的cookie。 js = 'function scroll(){var scrollElem=document.scrollingElement;scrollElem.scrollTop = len;le = document.scrollingElement.scrollTop;He = document.scrollingElement.scrollHeight;cl = document.scrollingElement.clientHeight;if(le + cl == He&&le + cl!=0) {}len=len+300;setTimeout(scroll,500)};len = 0;scroll();' driver.execute_script(js) 上边两行代码是执行js脚本使界面自动下拉滚动。

优秀的个人博客,低调大师

python字符串的魔法

print("hello,world.") 判断输入是否为数字 test = "2" v1 = test.isdecimal() #这个用的最多,可以判断小数 v2 = test.isdigit() v3 = test.isnumeric() #支持中文判断 print(v1,v2,v3) --- False False True 判断是否存在不可显示的字符 # 如果存在\t \n等则为False test = "sd\tfsdf" v = test.isprintalbe() print(v) --- False 判断是否全为空格 test = " " v = test.isspace() print(v) --- True 判断是否是标题 test = "Return True if all" v = test.istitle print(v) --- False 转换为标题 v2 = test.title() print(v2) --- Return True If All 将字符串中的每一个元素按指定分隔符进行拼接 # join会循环字符串,在每个字符后面加上指字的分隔符 test = "你是风儿我是沙" t = ' ' v = t.join(test) v = "_".join(test) print(v) 设置宽度,并将内容居中 # 20 代指总长度 # * 空白未知填充,一个字符,可有可无 v = test.centre(20,"中") print(v) #### test = "alex"v = test.ljust(20,"*")print(v)

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册