我在頭文件里定義了一個(gè)UIImage對(duì)象,然后在init方法里初始化。但是在接下來的運(yùn)行時(shí)代碼里,要?jiǎng)討B(tài)的修改這個(gè)UIImage對(duì)象的圖片二進(jìn)制文件,有沒有什么辦法,只修改二進(jìn)制文件,而不要改變UIImage的對(duì)象?
1 回答

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
只能重新初始化一個(gè)UIImage,具體原因有點(diǎn)長(zhǎng),首先UIImage是個(gè)聚類,不能簡(jiǎn)單繼承;其次DataProvider讀出的C指針里指向的數(shù)據(jù)不允許修改,尤其在iOS6上更加嚴(yán)格,有修改就崩潰。
如果你只是想換張切圖,重新初始化一個(gè)UIImage替代之前的就可以了
如果想處理圖片的話:
1.DataProvider讀出圖片imageA的C指針a
2.malloc分配相同大小的內(nèi)存,指針為b,memcpy從a拷貝到b
3.按照你的想法改變b的內(nèi)容
4.用改變后的b新建CGContext,從CGContext保存新的圖片imageB
5.將imageB賦給以前imageA的UIImageView?;蛘咴赿rawRect中重繪等
- 1 回答
- 0 關(guān)注
- 193 瀏覽
添加回答
舉報(bào)
0/150
提交
取消