UIImage pngData()を使用したCGImageマスキング

ケロッピモモ

画像をすばやくマスクしようとしています。ここに私のコードは次のとおりです
(通常は、originalImgからロードされた画像でUIImagePickerController、その後でトリミングUIGraphicsGetImageFromCurrentImageContext()、および
makedImageによって作成されたユーザによって描画された画像ですUIGraphicsGetImageFromCurrentImageContext()

func imageMasking(_ originalImg: UIImage, maskImage: UIImage) -> UIImage {
    let cgMaskImage = maskImage.cgImage!
    let mask = CGImage(maskWidth: cgMaskImage.width, height: cgMaskImage.height, bitsPerComponent: cgMaskImage.bitsPerComponent, bitsPerPixel: cgMaskImage.bitsPerPixel, bytesPerRow: cgMaskImage.bytesPerRow, provider: cgMaskImage.dataProvider!, decode: nil, shouldInterpolate: true)!
    return UIImage(cgImage: originalImg.cgImage!.masking(mask)!)
}

結果UIImageに表示するとUIImageView、うまく機能します。ただし、pngData()結果を取得しようとするUIImageと、画像データはと同じになりoriginalImgます。

pngData()結果の画像をXcodeからエクスポートしようとしましたが、それでもoriginalImgと同じです。

画像:https//imgur.com/tEVBWUQ(次に[エクスポート...]ボタンをクリックしてpng画像として保存します)

どうすれば本当に画像をマスクできますか?

アンドリュー・ロマノフ

マスクされた画像を画像コンテキストに描画するだけです:

func drawImage(_ image: UIImage) -> UIImage?
    {
        guard let coreImage = image.cgImage else {
            return nil;
        }
        UIGraphicsBeginImageContext(CGSize(width: coreImage.width, height: coreImage.height))
        image.draw(in: CGRect(x: 0.0, y: 0.0, width: coreImage.width, height: coreImage.height))
        let resultImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return resultImage;
    }

また、画像をビットマップコンテキストまたは画像レンダラーに描画して結果画像を取得することもできます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

CALayerとUIImageを使用してSwiftで画像をマスキングする

分類Dev

UIImageは等しい

分類Dev

contentOfFileを使用したUIImage

分類Dev

AFNetworkingを使用したUIImage

分類Dev

(UIImageではなく)CGImageを直接レンダリングしますか?

分類Dev

(UIImageではなく)CGImageを直接レンダリングしますか?

分類Dev

画像マスキングと新しいUIImageの作成

分類Dev

UIImage / CGImageの標準偏差

分類Dev

グレースケールマトリックスからのCGImage / UIImageの作成

分類Dev

UIImageを使用したSwiftプレイグラウンド

分類Dev

UIImageの形状/マスク?

分類Dev

Swiftplayground-フィルタリングされたUIImageをCGImageに変換できません

分類Dev

UIImageをUIBezierPathにクリップします(マスキングではありません)

分類Dev

UIImageがnilを返す

分類Dev

UIImageを回転させる

分類Dev

nullを返すUIImage.FromData()

分類Dev

CIImageをUIImageに変換

分類Dev

CGContextDrawImageで使用するためのUIImageのスケーリング

分類Dev

openGLを使用してUIImageをレンダリングする

分類Dev

画像グラフィックコンテキストを変換した後、drawAtPointを使用してUIImageを描画する方法

分類Dev

CATextLayerとUIImageをマージします

分類Dev

UIImageをNSDataに変換し、SwiftでUIImageに戻す?

分類Dev

UIImage(名前:文字列)またはUIImage swift 4

分類Dev

空白のUIImageを返すUIImageのカテゴリ?

分類Dev

Swift3-追加で[UIImage]にUIImageを追加できません

分類Dev

CATransform3Dを使用してUIImageを回転し、トリミングされた新しいUIImageのみを取得します

分類Dev

UIImageへのUILabelレンダリング

分類Dev

UIAlertViewのテキスト間のUIImage

分類Dev

UIImageへのキャスト時のSIGABRT

Related 関連記事

  1. 1

    CALayerとUIImageを使用してSwiftで画像をマスキングする

  2. 2

    UIImageは等しい

  3. 3

    contentOfFileを使用したUIImage

  4. 4

    AFNetworkingを使用したUIImage

  5. 5

    (UIImageではなく)CGImageを直接レンダリングしますか?

  6. 6

    (UIImageではなく)CGImageを直接レンダリングしますか?

  7. 7

    画像マスキングと新しいUIImageの作成

  8. 8

    UIImage / CGImageの標準偏差

  9. 9

    グレースケールマトリックスからのCGImage / UIImageの作成

  10. 10

    UIImageを使用したSwiftプレイグラウンド

  11. 11

    UIImageの形状/マスク?

  12. 12

    Swiftplayground-フィルタリングされたUIImageをCGImageに変換できません

  13. 13

    UIImageをUIBezierPathにクリップします(マスキングではありません)

  14. 14

    UIImageがnilを返す

  15. 15

    UIImageを回転させる

  16. 16

    nullを返すUIImage.FromData()

  17. 17

    CIImageをUIImageに変換

  18. 18

    CGContextDrawImageで使用するためのUIImageのスケーリング

  19. 19

    openGLを使用してUIImageをレンダリングする

  20. 20

    画像グラフィックコンテキストを変換した後、drawAtPointを使用してUIImageを描画する方法

  21. 21

    CATextLayerとUIImageをマージします

  22. 22

    UIImageをNSDataに変換し、SwiftでUIImageに戻す?

  23. 23

    UIImage(名前:文字列)またはUIImage swift 4

  24. 24

    空白のUIImageを返すUIImageのカテゴリ?

  25. 25

    Swift3-追加で[UIImage]にUIImageを追加できません

  26. 26

    CATransform3Dを使用してUIImageを回転し、トリミングされた新しいUIImageのみを取得します

  27. 27

    UIImageへのUILabelレンダリング

  28. 28

    UIAlertViewのテキスト間のUIImage

  29. 29

    UIImageへのキャスト時のSIGABRT

ホットタグ

アーカイブ