1. 安装Pillow, 只用这个应该也可以,
https://blog.csdn.net/Tui_GuiGe/article/details/105000851
2. 安装 cImage
https://codeload.github.com/bnmnetp/cImage/zip/master
下载后解压,拷贝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打开的。
参考资料,感谢:
1. https://blog.csdn.net/qq_40878431/article/details/82941982
2. https://www.cnblogs.com/future-dream/p/10901229.html
3. https://stackoverflow.com/questions/29313667/how-do-i-remove-the-background-from-this-kind-of-image
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!