JPG 8位深转1位深

问题描述

JPG格式用常规方法转换为1位深总是没有效果

JPG 8位深转1位深_第1张图片


解决方案:

一直找不到解决方案,意外修改了一下保存的格式为“PNG”,保存JPG居然就显示1位深了

具体代码:

from PIL import Image

# save jpg convert 8bit to 1bit
def save_jpg_1bit(file_path, save_path):
    img = Image.open(file_path)
    img = img.convert('L')    # 转灰度
    img = img.point(lambda x: 0 if x < 1 else 1, '1')    # 设定阈值,转二值
    img.save(save_path, 'PNG')    # 使用PNG格式很关键,否则JPG格式保存为1位深度的图片还是会变成8位深度

if __name__ == '__main__':
    img_path = './newresult_0_0.jpg'
    save_jpg_1bit(img_path, 'newresult_0_0_1bit.jpg')

你可能感兴趣的:(python)