这段代码是一个用于处理图片的Python脚本,它使用了PIL(Python Imaging Library)库来进行图片处理操作。主要功能是将指定颜色范围之外的像素设为透明,实现了一个简单的抠图效果。
以下是代码的主要功能和流程:
- 导入所需的模块:
sys
:用于获取命令行参数。PIL
中的Image
模块:用于图片的打开、处理和保存。
clip_image
函数:
- 打开指定的图片,将其转换为 RGBA 模式,其中 A 表示 alpha 通道(透明度通道)。
- 遍历图片的每个像素,根据像素的 RGB 值来判断是否应该设为透明或不透明。
- 最终将处理后的图片保存。
- 主函数:
- 如果脚本被命令行执行,则会读取命令行传入的图片文件路径。
- 对每个传入的图片路径,调用
clip_image
函数进行处理,并保存处理后的图片。
运行此脚本时,可以将图片文件拖动到脚本可执行文件上,然后脚本会将图片的部分区域抠图,并将抠图后的图片保存。代码中的阈值条件可以根据需要进行调整,以满足不同情况下的抠图需求。
请注意,此脚本涉及图片处理操作,请确保你已经安装了 PIL
(Pillow)库,可以使用以下命令安装:
pip install Pillow
# coding=utf8
import sys
from PIL import Image
def clip_image(image_path, save_path):
img = Image.open(img_path)
img = img.convert('RGBA')
x,y=img.size
for i in range(x):
for j in range(y):
xiangsu=img.getpixel((i,j))
if xiangsu[0]>100 or xiangsu[1]>100 or xiangsu[2]>100:
img.putpixel((i, j), (0,0,0,0))
else:
img.putpixel((i,j), (0,0,0,255) )
img.save(save_path)
if __name__=='__main__':
if len(sys.argv)<2:
input('不能直接运行,需要把图片文件拖动到可执行程序上来')
exit(0)
total=len(sys.argv)-1
print("总任务数:%d"%total)
for i in range(1,total +1):
img_path=sys.argv[i]
print('当前要处理的图片:', img_path)
save_path = img_path.split(r'/')[-1] + "_ele_sign.png"
clip_image(img_path, save_path)
print('处理后保存的位置:', save_path)
input('所有任务已处理完毕,按任意键退出')
评论前必须登录!
注册