python PIL 库处理文件
2024-08-25 14:36:54
通过PIL库提供的API接口可以很方便的处理图像,功能十分强大;
最近有一个替换png背景色的需求,替换背景色的同时又不能够覆盖原来的文字,之前利用perl 的CD 模块一直没能够正确处理,最终用PIL 成功的解决了问题
思路就是读取一个文件中的像素点,把背景色对应的像素点全部替换成新的颜色就可以了
代码如下:
from PIL import Image im = Image.open('hsa00250.png') box = (653,784,699,801)
img = im.crop(box)
x,y = img.size img = img.convert("RGBA")
datas = img.getdata() newData = []
for item in datas:
if item[0] == 191 and item[1] == 255 and item[2] == 191:
newData.append((255, 0, 0, 255))
else:
newData.append(item) img.putdata(newData)
im.paste(img, box)
im.save('hsa00250.new.png')
原来的图是这个样子的
将特定的点替换之后就变成了下面这样
通过PIL库,直接从像素层面操作文件,很强大!
后续还可以做一个本地版的脚本,对KEGG的图片进行颜色标记,这样就不需要每次都用KEGG网站的API 了。
最新文章
- 【Android】不使用WebView来执行Javascript脚本(Rhino)
- android小游戏 飞机躲子弹
- Charles使用详情
- Cheatsheet: 2014 09.01 ~ 09.30
- 解决数据库datatime数据在DataGridView里不显示秒的解决
- react中的坑
- 从 IT 中断中学到的最佳监控实践
- NET设计模式-单例模式(Singleton Pattern)
- poj2318 水题(二分+叉积)
- 【Web】十步教你搭建完整免费的个人网站(花生壳+XAMPP+WordPress)
- easyUI的简单了解
- 关系网络理论︱细讲中介中心性(Betweeness Centrality)
- Net 4.5 WebSocket 在 Windows 7, Windows 8 and Server 2012上的比较
- Testing - 软件测试知识梳理 - 探索性测试
- hdu 5919 Sequence II (可持久化线段树)
- Arch Linux中禁用UTC解决双系统时间问题
- (弃) Keystone CLI_可选命令详解
- binlog之五:mysqlbinlog解析binlog乱码问题解密
- 【C++】数组-整数从大到小排序
- My First