私が達成しようとしているのは、iPhoneカメラを使って写真を撮ってから、写真の一部を他の写真に置き換えることです。写真を撮り、UIViewでオーバーレイすることを考えていました低アルファですが、私は絵の特定の部分だけを置き換えることはできません。あなたに私にいくつかのアイデアを与えることができれば、私は本当にグレードアップします。画像を変更する
画像を変更する
答えて
iOSの場合、画像用のAPIがいくつかありますが、私はあなたの混乱を理解しています。 まず、UIImage
、画像のCocoaTouch抽象化があります。 次に、画像のCoreGraphics抽象化であるCGImage
があります。 さらに、イメージのCoreImage抽象化であるCIImage
があります。
これらはすべて、素晴らしいブリッジフリーの方法で一緒に使用できない異なるエンティティです。代わりに、さまざまな形式に変換する必要があります。
通常、最終的には、ウィジェットで表示できるUIImageが必要です。この画像は、CGImage
またはCIImage
から作成できます。 CIImage
には、高度なフィルタ機能が含まれています。たとえば、適切なコンポジションフィルタを使用して説明したように、別の画像を上に置くことができます。
CIImage
は、どんな方法でも高速で優れていますが、まだiOSでは完全にサポートされていません。 iOS用の独自のカスタムフィルタをまだ作成していない可能性があり、フィルタの一部のみがまだサポートされていません。
したがって、この目的でCGImage
を使用することをお勧めします。新しいレンダーコンテキストにレンダリングし、そのレンダリングコンテキストからUIImageを作成する必要があります。
これはトリックを行う必要があります。
UIImage *originalImage = ...;
UIImage *frontImage = ...;
CGSize destinationSize = originalImage.frame.size;
UIGraphicsBeginImageContext(destinationSize);
[originalImage drawInRect:CGRectMake(0,0,destinationSize.width,destinationSize.height)];
[originalImage drawInRect:CGRectMake(10,10,destinationSize.width - 20,destinationSize.height - 20)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
はciimageにポイント 1.利用quartzcoreライブラリで両方の画像 2.変換をあなたに説明しています。 (多くがあり、多くのものを立地しています) が好きな、あなたの必要性に応じて、今すぐ利用フィルタを
CIImage *paper1 =[CIImage imageWithData:UIImageJPEGRepresentation([UIImage imageNamed:@"heart123.png"], 1)];
を..「CISourceAtopCompositing」または「CISourceOverCompositing」フィルタ とあなたが得る:変換のための コードがあります何あなたがそれらを使用するための
コードを望むのである:ここでは
CIContext *context = [CIContext contextWithOptions:nil];
CIFilter filter= [CIFilter filterWithName:@"CISourceAtopCompositing"]; //for CISourceAtopCompositing method
[filter setDefaults];
[filter setValue:sourceImage forKey:@"inputImage"];
[filter setValue:backgroundImage forKey:@"inputBackgroundImage"];
backgroundImageの、そしてsourceImage両方CIImageはUIImage
からに変換され、今編集使用後に、このコードをuiimageを取得する
CIImage *outputImage = [filter valueForKey:@"outputImage"];
CGImageRef cgImage = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *outputUIImage = [UIImage imageWithCGImage:cgImage];
- 1. ギャラリー画像をサイズ変更した画像を変更する
- 2. 画像を変更する
- 3. AngularJS - 主画像の変更時に別の画像を変更する方法
- 4. 画像のアップロードアップロード画像のサイズを変更する
- 5. 画像のサイズを変更してアップロードする画像アップロードウィジェット
- 6. 画像の向きを画像の向きに変更する
- 7. リアクションJS画像アップローダ|背景画像を変更する
- 8. 画像のサイズを変更するGWT画像クリックハンドラー
- 9. Qtのラベル画像を変更する
- 10. Image Onclick画像を変更する
- 11. アニメーションUIImageViewの画像を変更する
- 12. select onchangeの画像を変更する
- 13. UIBarButtonの画像を変更する
- 14. アップロード画像を変更するには
- 15. 画像の色を変更する
- 16. OnTouch背景画像を変更する
- 17. シャツ画像の色を変更する
- 18. ロゴ画像でラベルを変更する
- 19. UIViewスワイプジェスチャー画像を変更する
- 20. StaticBitmapの画像を変更するwxWidgets
- 21. 画像を変更するには
- 22. JavaScriptの画像を変更する
- 23. 画像をドロップ、トリミング、サイズ変更する
- 24. サーバサイズで画像サイズを変更する
- 25. 色を変更する画像が、キャンバス
- 26. タイトルホバー - 画像を変更する
- 27. PyGI画像の色を変更する
- 28. 画像の日付を変更する
- 29. フクロウカルーセル画像を変更する
- 30. UITabBar(画像)のサイズを変更する