python gif 透明_python3 + Pillow 批量处理简单gif 转成 png 并透明化 去掉背景色
1. 安装Pillow, 只用这个应该也可以,
2. 安装 cImage
下载后解压,拷贝image.py到你python安装目录的 Lib\site-packages 中。
from PIL import Image
import os
import image
def get_imlist(path):
"""返回目录中所有gif图像的文件名列表图像的文件名列表"""
return [os.path.join(path,f) for f in os.listdir(path) if f.endswith(".gif")]
path = "E:\sucai\change_git_to_png\last-guardian-sprites"
listdir = get_imlist(path)
print (listdir)
def iter_frames(im):
try:
i= 0
while 1:
im.seek(i)
imframe = im.copy()
if i == 0:
palette = imframe.getpalette()
else:
imframe.putpalette(palette)
yield imframe
i += 1
except EOFError:
pass
"""for i, frame in enumerate(iter_frames(im)):"""
""" frame.save('bmg4_rt2.png',**frame.info)"""
for dir in listdir:
print(dir)
im = Image.open(dir)
for i, frame in enumerate(iter_frames(im)):
png_file_name = (str(dir)[:-3]+'png')
frame.save(png_file_name,**frame.info)
png_im = Image.open(png_file_name)
png_im = png_im.convert('RGBA')
width = png_im.size[0]
height = png_im.size[1]
color_0 = png_im.getpixel((0,0))
newImage = []
for png_i in range(0, width):
for png_j in range(0, height):
png_data = png_im.getpixel((png_i, png_j))
if (png_data == color_0):
png_data = png_data[:-1] + (0,)
png_im.putpixel((png_i, png_j),png_data)
png_im.save(png_file_name)
说明:
1. Image.open(png_file_name) 打开png,默认只有 RGB 三通道
2. 转成 RGBA 四通道,最后那个A表示透明度,取值范围是0到255, 值越大表示越不透明,
所以我们的目标就是要把透明度设置为0。
png_data[:-1] 就是取 RGB 三个值, + (0,) 就是 把A设置成0.
然后改变 点(i,j)的像素。
3. 别忘记再次 保存为png 图片格式。
效果
我使用的是GIMP打开的。
参考资料,感谢:
原文链接:https://blog.csdn.net/Tui_GuiGe/article/details/105007643
python gif 透明_python3 + Pillow 批量处理简单gif 转成 png 并透明化 去掉背景色相关推荐
- python gif 透明,Python3+试点批量处理简单的GIF到PNG并透明地去除背景色,python3Pillow,gif,转成,png,透明化,去掉...
1. 安装Pillow, 只用这个应该也可以, 2. 安装 cImage 下载后解压,拷贝image.py到你python安装目录的 Lib\site-packages 中. from PIL imp ...
- pillow python 划线_Python用Pillow(PIL)进行简单的图像操作
Python用Pillow(PIL)进行简单的图像操作 颜色与RGBA值 计算机通常将图像表示为RGB值,或者再加上alpha值(通透度,透明度),称为RGBA值.在Pillow中,RGBA的值表示为 ...
- python实现画板_Python3使用PyQt5制作简单的画板/手写板
0.目录 1.前言 在定点和移动中的鼠标所在处画一条线 在定点和移动中的鼠标所在处画一条线 并将画过的线都保留在窗体上 将按住鼠标后移动的轨迹保留在窗体上 将按住鼠标后移动的轨迹保留在窗体上 并解决二 ...
- python svg转png_Python实现批量把SVG格式转成png、pdf格式的代码分
必须提早安裝cairosvg控制模块,下载链接 Code:#! encoding:UTF-8import cairosvgimport osloop = Truewhile loop:svgDir = ...
- python脚本编程——将批量的长方形图片切割成多个正方形图片
简介 在处理.mat文件得到图片(bmp)时,转成的图片尺寸大小与.mat文件有关.两个特征的.mat文件分别是1294*86和1294*128大小.这也是两个文件中的图片大小,由于模型输入需要的是批 ...
- 使用python写一段代码,能够实现图片转成素描风格
可以使用 Python 的图像处理库 Pillow 来实现将图片转换成素描风格的功能. 下面是一个示例代码: from PILimport Image, ImageFilter# 打开图片 im = ...
- python读取word文档并做简单的批量文档筛选
python读取word文档并做简单的批量文档筛选 最近参与了一项解析大量的word文档(试验报告形式)的工作,因为其中包含着一些对项目无意义的报告,所以要进行初步地筛选,通过查阅资料发现了pytho ...
- Python Pillow批量转换tif格式到jpg
Python Pillow批量转换tif格式到jpg 也可以自定义多种格式转化 清晰度依旧哦 最近有个任务就是将tif转成jpg的,但是呢,一张一张去photoshop里面转太慢了,所以就想着用pyt ...
- python表格单元格批注批量插图xlwings\os\pillow教程,手把手代码讲解
1.常规操作import python设置--项目--python解释器--增加软件包Pillow\xlwings from PIL import Image import os import xlw ...
最新文章
- NHibernate从入门到精通系列(7)——多对一关联映射
- 从音乐分享平台到泛音乐视频社交平台,菠萝 BOLO完成过亿元 B 轮融资
- Golang init函数执行顺序
- [MATLAB调试笔记]Update magnetic field in one step
- stm32单片机屏幕一直闪_STM32使用HAL库函数点亮OLED
- 收集整理的非常有用的PHP函数
- c/c++教程 - 总集1. c基础语法
- 切换计算机用户指,切换用户提示计算机锁定
- Hibernate中的3中状态
- jvm初体验:堆溢出处理
- 关于VS编译的程序内存分配只能用1.5~2G上限的优化方案
- linux shell执行perl脚本,无法在Shell脚本中运行Perl脚本
- ffmpeg合并mkv视频文件和ass字幕文件
- SQL Server 2008 R2每天自动备份数据库
- 计算机复制功能快捷键,电脑复制快捷键是什么(全部复制粘贴的快捷键是什么)...
- Kindle4rss中文rss资源推荐~
- macpro如何清理磁盘空间_Mac怎么清理磁盘空间, 如何清理Mac内存?
- vue基础:ElementUI的表单
- Python双均线策略回测(2021-10-12)
- Corn fields(玉米田)状压dp入门第一题 洛谷P1879 poj3254