对照片质量进行压缩
其实无论是jpg还是png都是已经压缩编码化的格式罢了,原图片的大小要远远大于压缩编码后的格式
1,像素:图片放大到一定程度之后的一个个的小方块
2,RGB:每一个像素(小方块)都是由RGB所构成
3,颜色深度:8bit的颜色深度表示可以表示的颜色范围在[0-255]之间也就是2^8
4,图片的宽高:表示在水平方向(宽)和竖直方向(高)上有多少个像素点(小方块)
5,图片大小=图片的像素点个数×颜色通道×每个颜色通道的颜色深度 单位为bit
143.91KB=232×211×3×8(bit),当然1bit/8=1B,1B/1024=1KB
6,对于png图片含有RGB和alpha分量,其中alpha表示透明度
7,除了RGB以外还有BGR
8,其中的BGR表示蓝色blue、绿色green、红色red这些是单独的颜色分量
1,对jpg照片进行有损压缩
import cv2
img = cv2.imread("E:\Python-workspace\OpenCV/yy.jpg",1)#1表示彩色图片,0表示灰度图片
cv2.imwrite('E:\Python-workspace\OpenCV/y0.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,0])#这里的取值范围为0-100,其中0表示压缩的越厉害,体积越小当然会有损照片
cv2.imwrite('E:\Python-workspace\OpenCV/y50.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,50])
cv2.imwrite('E:\Python-workspace\OpenCV/y100.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,100])
效果如下:
运行前:
运行后:
2,对png照片进行等比压缩
import cv2
img = cv2.imread("E:\Python-workspace\OpenCV/yy.png",1)#1表示彩色图片,0表示灰度图片
cv2.imwrite('E:\Python-workspace\OpenCV/y0.png',img,[cv2.IMWRITE_PNG_COMPRESSION,0])#这里的取值范围为0-9,其中0表示压缩比最低,图片效果较好
cv2.imwrite('E:\Python-workspace\OpenCV/y5.png',img,[cv2.IMWRITE_PNG_COMPRESSION,50])
cv2.imwrite('E:\Python-workspace\OpenCV/y9.png',img,[cv2.IMWRITE_PNG_COMPRESSION,100])
效果如下:
运行前:
运行后:
总结:
jpg | png |
---|---|
0-100有损压缩 | 0-9等比压缩 |
有损 | 无损 |
无透明度属性 | 有透明度属性 |