【python】PIL 批量绘制图片矩形框工具
工具采用PIL:Python Imaging Library,图像处理标准库。PIL功能非常强大,但API却非常简单易用。
安装PIL
在Debian/Ubuntu Linux下直接通过apt安装
$ sudo apt-get install python-imaging |
Windows平台直接通过pip安装
pip install pillow |
批量工具脚本
默认执行方式为: 执行脚本命令 python drawline.py 1.获取当前路径下的'png','jpg'文件 2.绘制宽高占比为0.5,0.5的矩形框 3.保存图片至当前路径下的line文件夹 |
|
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
|
# -*- coding: utf-8 -*-from PIL import Image, ImageDrawimport os, sysdef drawLine(im, width, height): ''' 在图片上绘制矩形图 :param im: 图片 :param width: 矩形宽占比 :param height: 矩形高占比 :return: ''' draw = ImageDraw.Draw(im) image_width = im.size[0] image_height = im.size[1] line_width = im.size[0] * width line_height = im.size[1] * height draw.line( ((image_width - line_width) / 2, (image_height - line_height) / 2, (image_width + line_width) / 2, (image_height - line_height) / 2), fill=128) draw.line( ((image_width - line_width) / 2, (image_height - line_height) / 2, (image_width - line_width) / 2, (image_height + line_height) / 2), fill=128) draw.line( ((image_width + line_width) / 2, (image_height - line_height) / 2, (image_width + line_width) / 2, (image_height + line_height) / 2), fill=128) draw.line( ((image_width - line_width) / 2, (image_height + line_height) / 2, (image_width + line_width) / 2, (image_height + line_height) / 2), fill=128) del drawdef endWith(s, *endstring): ''' 过滤文件扩展名 :param s: 文件名 :param endstring: 所需过滤的扩展名 :return: ''' array = map(s.endswith, endstring) if True in array: return True else: return Falseif __name__ == '__main__': ''' 默认执行方式为: 1.获取当前路径下的'png','jpg'文件 2.绘制宽高占比为0.5,0.5的矩形框 3.保存图片至当前路径下的line文件夹 ''' line_w = 0.5 line_h = 0.5 try: if sys.argv[1]: line_w = float(sys.argv[1]) if sys.argv[2]: line_h = float(sys.argv[2]) except IndexError: pass current_path = os.getcwd() save_path = os.path.join(current_path, 'line') file_list = os.listdir(current_path) for file_one in file_list: # endWith(file_one, '.png', '.jpg') 第二个参数后为过滤格式 以 , 分割 if endWith(file_one, '.png', '.jpg'): im = Image.open(file_one) # drawLine(im,line_w, line_h) 后面两位参数为矩形图宽高占比 drawLine(im, line_w, line_h) if not os.path.exists(save_path): os.mkdir(save_path) im.save( os.path.join(save_path, str(file_one.split('.')[-2]) + '_line.' + str(file_one.split('.')[-1]))) |
【python】PIL 批量绘制图片矩形框工具的更多相关文章
- 【Python】批量给图片增加水印工具
背景 最近有一些图片需要增加水印,找了一圈也没看见比较好的工具,又不想用破解的PS,干脆自己做了一个GUI工具,有需要的同学自取 功能 支持水印预览 自定义水印文字内容 支持行楷和微软雅黑两种字体 支 ...
- 基于Python PIL实现简单图片格式转化器
基于Python PIL实现简单图片格式转化器 目录 基于Python PIL实现简单图片格式转化器 1.简介 2.前期资料准备 2.1.1如何实现图片格式转换? 2.1.2如何保存需要大小的图片? ...
- < python PIL - 批量图像处理 - 生成自定义大小图像 >
< python PIL - 批量图像处理 - 生成自定义大小图像 > 直接用python自带的PIL图像库,对一个文件夹下所有jpg/png的图像进行自定义像素变换 from PIL i ...
- c#在pictureBox控件上绘制多个矩形框及删除绘制的矩形框
在pictureBox上每次只绘制一个矩形框,绘制下一个矩形框时上次绘制的矩形框取消,代码如链接:https://www.cnblogs.com/luxiao/p/5625196.html 在绘制矩形 ...
- < python PIL - 批量图像处理 - RGB图像生成灰度图像 >
< python PIL - 批量图像处理 - RGB图像生成灰度图像 > 直接用python自带的PIL图像库,将一个文件夹下所有jpg/png的RGB图像转换成灰度/黑白图像 from ...
- Python,PIL压缩裁剪图片
自己写了用来压缩 DC 照片的,批量处理整目录文件,非常方便.需要安装 PIL #!/usr/bin/env python import Image import os import os.path ...
- 使用Python轻松批量压缩图片
在互联网,图片的大小对一个网站的响应速度有着明显的影响,因此在提供用户预览的时候,图片往往是使用压缩后的.如果一个网站图片较多,一张张压缩显然很浪费时间.那么接下来,我就跟大家分享一个批量压缩图片的方 ...
- OpenCV—Python 轮廓检测 绘出矩形框(findContours\ boundingRect\rectangle
千万注意opencv的轮廓检测和边缘检测是两码事 本文链接:https://blog.csdn.net/wsp_1138886114/article/details/82945328 1 获取轮廓 O ...
- Python PIL创建文字图片
PIL库中包含了很多模块,恰当地利用这些模块可以做许多图像处理方面的工作. 下面是我用来生成字母或字符串测试图片而写的类及测试代码. 主要用到的模块: PIL.Image,PIL.ImageDraw, ...
随机推荐
- SQLServer - 约束
一.约束的分类 在SQLServer中,有3种不同类型的约束. 1.实体约束 实体约束是关于行的,比如某一行出现的值就不允许出现在其他行,例如主键. 2.域约束 域约束是关于列的,对于所有行,某一列有 ...
- js控制select下拉列表数据绑定
JS代码部分: <script type="text/javascript"> $(document).ready(function () { $("sel ...
- 关于u盘启动,关于UEFI,关于hp手提计算机
这个国庆前夕,遇到点麻烦了:一台新的手提计算机,按照常规方法不能用u盘启动引导.导致也无法做备份.所以,研究了不少小时哦...终于也可以解决的. 关于u盘启动,一般常用的有:u大侠(推荐),大白菜(不 ...
- 今天遇到的点击添加按钮button_click代码段无法执行的问题
首先:本人小白一枚,刚入行,如有表述不当的地方,还请多多指教 网页界面如图: 当点击添加按钮后断点测试进入后台代码运行: 代码会先执行Page_Load页面,当加载完后Page_Load代码会跳转到m ...
- JDom2的Xpath使用
/** * XPath获取属性值 * @param root * @param xPath * @return */ public static String getXPathAttributeVal ...
- Struts2 配置文件result的name属性和type属性
Struts2 配置文件result的name属性和type属性:Name属性SUCCESS:Action正确的执行完成,返回相应的视图,success是 name属性的默认值: NONE:表示Act ...
- JAVAWEB学习总结 HTTPSERVLETRESPONSE对象(二)
一.HttpServletResponse常见应用--生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类 步骤: 1. 在内存中创建一张图片 2.得到图片 ...
- Shell 编写准则
Shell 中备注符号: # 或者 " 作为Shell中的备注符号. 需要注意的是,首行的#!/bin/bash 不是注释 Shell 格式 首行输入 #!/bin/bash 中间输入运行 ...
- Xor && 线性基练习
#include <cstdio> #include <cstring> ; ; int cnt,Ans,b,x,n; inline int Max(int x,int y) ...
- C#在Dictionary中使用枚举作为键
Enum类型没有实现IEquatable接口,Dictionary中使用Enum作为键时,将发生装箱,使效率降低. 此时可用Dictionary中一个接收IEqualityComparer<T& ...