iOS 關於UIImage的壓縮問題

2021-07-08 18:13:37 字數 805 閱讀 7675

uiimage *img = [uiimage imagenamed:@」example.png」];

/**

* 兩種轉化方式,

*/ nsdata *data = uiimagejpegrepresentation(img, 0.0001);

nsdata *data1 = uiimagepngrepresentation(img);

nslog(@」data-%lu,data1-%lu」,(unsigned long)data.length,(unsigned long)data1.length);

## 總結:##

data = 14210964 =>14.2m

data1 = 40223368 =>40.2m

明顯png佔的記憶體更大,uiimagejpegrepresentation可以對進行壓縮,

的壓縮其實是倆概念,

1、是 「壓」 檔案體積變小,但是畫素數不變,長寬尺寸不變,那麼質量可能下降,

2、是 「縮」 檔案的尺寸變小,也就是畫素數減少。長寬尺寸變小,檔案體積同樣會減小。

這個 uiimagejpegrepresentation(image, 0.0),是1的功能。

這個 [sourceimage drawinrect:cgrectmake(0,0,targetwidth, targetheight)] 是2的功能。

如果要壓縮可以用個迴圈

nsdata * dataimage;

while (1) else

}

iOS 關於UIImage的處理總結

void providerreleasedata void info,const void data,size t size pragma mark 去掉最常見顏色為透明顏色 uiimage imageblacktotransparent uiimage image weight nsinteger...

ios修改UIImage的大小

修改uislider的最大值和最小值的時候,發現需要修改的大小,否則會導致uislider變形。目前蘋果還不支援直接修改uiimage類的大小,只能修改uiimageview的大小。所以只能通過寫方法的方式來實現修改。如下 import inte ce uiimage scale uiimage t...

IOS瘋狂基礎之UIImage

cgimage和cgimageref這兩個應當是用來重繪圖形的類,它們在應用時是按照影象的畫素矩陣來繪製的,它們可以用來處理bitmap。cgimageref與uiimage的互轉 cgimageref轉換成uiimage cgimageref ioffscreen cgbitmapcontextc...