私はUIImageを持っており、各点のRGB値を下げたいのですが、どうすればいいですか? または画像内のある色を別の色に変更するにはどうすればよいですか? [Xcode8、swift3]iOSで画像のrgb値を変更するにはどうすればよいですか?
0
A
答えて
0
あなたは個々のピクセルを変更したい場合は、この答えはのみ適用されます。..
まず使用UIImage.cgImage
はCGImage
を取得します。次に、CGBitmapContextCreate
とCGColorSpaceCreateDeviceRGB
の色空間を使用し、必要なブレンドモードを使用してビットマップコンテキストを作成します。
次に、CGContextDrawImage
を呼び出して、あなたが提供するピクセル配列に基づいてイメージをコンテキストに描画します。クリーンアップ、ピクセルの配列を持つようになりました。
- (uint8_t*)getPixels:(UIImage *)image {
CGColorSpaceRef cs= CGColorSpaceCreateDeviceRGB();
uint8_t *pixels= malloc(image.size.width * image.size.height * 4);
CGContextRef ctx= CGBitmapContextCreate(rawData, image.size.width, image.size.height, 8, image.size.width * 4, cs, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(cs);
CGContextDrawImage(ctx, CGRectMake(0, 0, image.size.width, image.size.height));
CGContextRelease(ctx);
return pixels;
}
、あなたが欲しいしかし、ピクセルを変更します。..そして、ピクセルから画像を再作成...
- (UIImage *)imageFromPixels:(uint8_t *)pixels width:(NSUInteger)width height:(NSUInteger)height {
CGDataProviderRef provider = CGDataProviderCreateWithData(nil, pixels, width * height * 4, nil);
CGColorSpaceRef cs = CGColorSpaceCreateDeviceRGB();
CGImageRef cgImageRef = CGImageCreate(width, height, 8, 32, width * 4, cs, kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedLast, provider, nil, NO, kCGRenderingIntentDefault);
pixels = malloc(width * height * 4);
CGContextRef ctx = CGBitmapContextCreate(pixels, width, height, 8, width * 4, cs, kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedLast);
CGContextDrawImage(ctx, (CGRect) { .origin.x = 0, .origin.y = 0, .size.width = width, .size.height = height }, cgImage);
CGImageRef cgImage = CGBitmapContextCreateImage(ctx);
UIImage *image = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
CGContextRelease(ctx);
CGColorSpaceRelease(cs);
CGImageRelease(cgImageRef);
CGDataProviderRelease(provider);
free(pixels);
return image;
}
0
1つの方法は、画像をテンプレートとして使用し、必要な色を設定することです。
extension UIImageView {
func changeImageColor(color:UIColor) -> UIImage
{
image = image!.withRenderingMode(.alwaysTemplate)
tintColor = color
return image!
}
}
//Change color of logo
logoImage.image = logoImage.changeImageColor(color: .red)
関連する問題
- 1. ColdFusion(Java)でCMYKとRGBの間で画像を変換するにはどうすればよいですか?
- 2. 'TYPE_3BYTE_BGR'画像のRGB値を取得するにはどうすればよいですか?
- 3. simplecvを使用してRGB画像をグレイサクルに変換するにはどうすればよいですか?
- 4. デフォルトの画像アプリケーションを自分の画像に変更するにはどうすればよいですか?
- 5. pcl :: PointXYZRGBAのRGB値を変更するにはどうすればよいですか?
- 6. Androidのギャラリーから画像ボタンの画像を変更するにはどうすればいいですか?
- 7. SmallBasic:getpixel関数の16進値をrgb値に変換するにはどうすればよいですか?
- 8. アップロードされている画像の名前を変更するにはどうすればよいですか?
- 9. iOSで画像を変更せずに、画像ビューで図面を消去するにはどうすればよいですか?
- 10. iframe動画の背景画像を変更するにはどうすればよいですか?
- 11. IOSカメラのプレビュー画層で1つの画像をマージするにはどうすればよいですか?
- 12. マウスオーバーで各サイトに画像のサイズを変更するにはどうすればよいですか?
- 13. iOS開発用の複合画像または変更された画像を保存するにはどうすればよいですか?
- 14. アンドロイドで画像の明るさを変更するにはどうすればよいですか?
- 15. スクロールするすべての画像の色を変更するにはどうすればよいですか?
- 16. 角のGoogleマップでマーカークラスターのアイコン画像を変更するにはどうすればよいですか?
- 17. グリッドビューの画像上でクリックリスナの位置を変更するにはどうすればよいですか?
- 18. 変更するときに画像のデータを保持するにはどうすればよいですか?
- 19. Swift 3 - 画像を保存するRGB値を変更する
- 20. UIViewで5秒ごとに別の画像に変更するにはどうすればよいですか?
- 21. WPFでホバーオーバーで画像を変更するにはどうすればよいですか?
- 22. Xcodeインタフェースビルダで作成したボタンの画像を変更するにはどうすればよいですか?
- 23. スクロールで画像のサイズを変更するにはどうすればよいですか?
- 24. ドラッグで画像のサイズを変更するにはどうすればよいですか?
- 25. Androidで撮影した画像のサイズを変更するにはどうすればよいですか?
- 26. tabBarスウィフトで項目や画像の色を変更するにはどうすればよいですか?
- 27. paper.jsでラスター(画像)のサイズを変更するにはどうすればよいですか?
- 28. ComboBoxでPictureBoxと画像のサイズを変更するにはどうすればよいですか?
- 29. Android - タブでテキストと画像のデフォルト位置を変更するにはどうすればよいですか?
- 30. ListViewの内部で画像を変更するにはどうすればよいですか?
おかげで、私はCIFilterと私の仕事を終える:Q –