compression d'image python/conversion de format

avant-propos

Hier soir, j'ai finalement changé le fond rouge en bleu. Je pensais le soumettre avec plaisir, mais
j'ai trouvé que 201 Ko ne pouvaient pas être soumis... Le collège exige (60 Ko ~ 200 Ko).



Compresser l'image

# 代码参考自 https://blog.csdn.net/weixin_34910922/article/details/117537384
import cv2


def compress_pic(origin_img_fp, save_img_fp, compression):

    # IMWRITE_JPEG_QUALITY会比IMWRITE_PNG_COMPRESSION压缩比率低一些
    quality = cv2.IMWRITE_JPEG_QUALITY
    assert 0 <= compression <= 100, 'please make sure 0 <= compression <= 100'
    if origin_img_fp.split('.')[-1] == 'png':
        # 越小照片越大
        quality = cv2.IMWRITE_PNG_COMPRESSION
        assert 0 <= compression <= 10, 'please make sure 0 <= compression <= 10'
    
    img = cv2.imread(origin_img_fp)
    cv2.imwrite(save_img_fp.format(compression), img, [quality, compression])
    print('压缩成功', save_img_fp.format(compression))


if __name__ == '__main__':
    origin_img_path = 'pic/my_640_480.png'
    save_img_path = 'pic/my_640_480_compression_{}.png'
    compress_pic(origin_img_path, save_img_path, 8)

Au format png, on constate que plus le paramètre de compression est petit, plus la taille de l'image est grande.



Conversion de formats d'images

Je suis monté et j'ai jeté un coup d'œil, le collège exige le format jpg, qui est vraiment pur et pur...
J'ai utilisé paint pour l'enregistrer en tant qu'image jpg, mais le résultat était trop petit, seulement 35 Ko,
utilisons python pour écrire un png en jpg.
La qualité par défaut est de 75, mais le taux de compression est trop élevé. J'ai donc un peu augmenté la qualité.

from PIL import Image


im = Image.open('pic/my_640_480.png')
im = im.convert('RGB')
im.save('pic/my_640_480.jpg', quality=100)

Enfin fini de transférer 86KB.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43850253/article/details/126383253
conseillé
Classement