データベースから小さな画像があり、画像の平均色を少し変更する必要があります。
これはCGImageRefであり、 CGContextを作成し、このコンテキストに画像を描画し、その後、ビットマップデータを何らかの方法で変更し、最後にレンダリングすることを考えました。しかし、どうすれば色情報を変更できますか?
ご協力いただきありがとうございます!
ピクセルデータ操作に関するこのAppleQ&Aで、その方法の詳細を確認してください。
次のようにオブジェクトに色を描画します。
// first draw image
[self.image drawInRect:rect];
// prepare the context to draw into
CGContextRef context = UIGraphicsGetCurrentContext();
// set the blend mode and draw rectangle on top of image
CGContextSetBlendMode(context, kCGBlendModeColor);
CGContextClipToMask(context, self.bounds, image.CGImage); // this restricts drawing to within alpha channel
CGContextSetRGBFillColor(context, 0.75, 0.0, 0.0, 1.0); // this is your color, a light reddish tint
CGContextFillRect(context, rect);
これをカスタムUIViewのdrawRect:メソッドに入れました。そのUIViewには、色付けまたは色付けする画像を保持するivar、UIImage*imageがあります。