UIGraphicsBeginImageContext(imgView.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
unsigned char* data = CGBitmapContextGetData (cgctx);
//offset locates the pixel in the data from x,y.
//4 for 4 bytes of data per pixel, w is width of one row of data.
int offset = 4*((w*round(point.y))+round(point.x));
這樣就可以用
data[offset+0] ~ data[offset+3] 來取得 point那一點的 ARGB 值.
可以改變內容值..
再以
imgView.image = UIGraphicsGetImageFromCurrentImageContext();
把context指定給imgView就可以看到修改過的.
另外今天在調整alpha值遇到一個狀況..
圖片很多灰色 白色的部份. 在改變 alpha值時 不去改變RGB值
會有一小段過程中變成亮白色閃過...跟一般使用UIView setAlpha過程不一樣
查了很久.. 發現要連RGB一起改,
我是改成 R = R*newAlpha/255 這樣,讓RGB值與alpha的比例相同.
看起來就正常多了.
沒有留言:
張貼留言