python gif 透明,Python3+试点批量处理简单的GIF到PNG并透明地去除背景色,python3Pillow,gif,转成,png,透明化,去掉...
1. 安裝Pillow, 只用這個(gè)應(yīng)該也可以,
2. 安裝 cImage
下載后解壓,拷貝image.py到你python安裝目錄的?Lib\site-packages 中。
from PIL import Image
import os
import image
def get_imlist(path):
"""返回目錄中所有g(shù)if圖像的文件名列表圖像的文件名列表"""
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,默認(rèn)只有 RGB 三通道
2. 轉(zhuǎn)成 RGBA 四通道,最后那個(gè)A表示透明度,取值范圍是0到255, 值越大表示越不透明,
所以我們的目標(biāo)就是要把透明度設(shè)置為0。
png_data[:-1] 就是取 RGB 三個(gè)值,? +? (0,) 就是 把A設(shè)置成0.
然后改變 點(diǎn)(i,j)的像素。
3. 別忘記再次 保存為png 圖片格式。
效果
我使用的是GIMP打開的。
參考資料,感謝:
總結(jié)
以上是生活随笔為你收集整理的python gif 透明,Python3+试点批量处理简单的GIF到PNG并透明地去除背景色,python3Pillow,gif,转成,png,透明化,去掉...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php的c方法,thinkphp的c方法
- 下一篇: 10桌面管理文件收纳_二十余件精选桌面好