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.
![](https://img-blog.csdnimg.cn/31b2e1c53cee4f788b65eb5717294acb.png#pic_center)
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.