UIImage имеет свойство CGImage для чтения. Я должен прочитать его пиксели в блок памяти и отредактировать их, а затем создать новый UIImage для замены старого. Я хочу знать, есть ли способ обходить свойство только для чтения и редактировать эти пиксели напрямую.
Спасибо.
Спасибо всем. Я нашел способ сделать это. Напишите класс с помощью этого метода:
-(void)preProcess:(UIImage*)srcImage {
m_Context = ...// Created by calling CGBitmapContextCreate(...)
...
CGContextDrawImage(m_Context, rect, srcImage.CGImage);
m_Bits = (unsigned char*)CGBitmapContextGetData (mContext);
}
-(void)postProcess {
CGContextRelease(m_Context);
free(m_Bits);
}
-(UIImage*)doProcess:(CGPoint)pt {// just a example
unsigned char* ppxl = m_Bits + ...
// do something...
CGImageRef imRef = CGBitmapContextCreateImage(mContext);
return [UIImage imageWithCGImage:imRef];
}
И preProcess и postProcess вызывается только один раз.