對照片質量進行壓縮
其實無論是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等比壓縮 |
有損 | 無損 |
無透明度屬性 | 有透明度屬性 |