質問編集履歴

2

解決した為、その部分のコードを追記

2021/04/26 01:20

投稿

aaru
aaru

スコア1

test CHANGED
File without changes
test CHANGED
@@ -177,3 +177,21 @@
177
177
  保存完了のメッセージは出るのですが、カメラロールに存在しません。
178
178
 
179
179
  何か確認すべき点などございませんでしょうか。
180
+
181
+
182
+
183
+ 追記2
184
+
185
+ CIIImageからUIImageへの変換を一旦、CGImageに変換しUIImageに変換することで保存出来ました
186
+
187
+ ```swift
188
+
189
+ let context = CIContext()
190
+
191
+ let cgImage = context.createCGImage(compositeImage!,from: compositeImage!.extent)
192
+
193
+ let image2 = UIImage(cgImage: cgImage!)
194
+
195
+ self.displayView.image = image2
196
+
197
+ ```

1

ご指摘を受け、お教え頂いたヒントより一部解決した為、その部分を追記

2021/04/26 01:20

投稿

aaru
aaru

スコア1

test CHANGED
File without changes
test CHANGED
@@ -135,3 +135,45 @@
135
135
  の後にself.displayView.imageをカメラロールに保存しているのですが、オリジナルの画像が保存され、切り抜き画像の保存が行えません。画面での見た目は、切り抜かれた画像(犬)が表示されています。
136
136
 
137
137
  切り抜き画像の保存方法と切り抜き画像と別に用意した背景画像の合成方法をお教えいただけませんでしょうか。
138
+
139
+
140
+
141
+ 追記
142
+
143
+ CIFilterを使用し、合成を行うことができました。
144
+
145
+ ```Swift
146
+
147
+ let si = UIImage.init(named: "org.jpg")
148
+
149
+ let mi = UIImage.init(named: "mask.jpg")
150
+
151
+ let bi = UIImage.init(named: "photo.jpg")
152
+
153
+
154
+
155
+ let sci = CIImage(image: si!)
156
+
157
+ let mci = CIImage(image: mi!)
158
+
159
+ let bci = CIImage(image: bi!)
160
+
161
+
162
+
163
+ let compositeImage = CIFilter(name: "CIBlendWithMask", parameters: [
164
+
165
+ kCIInputImageKey: sci,
166
+
167
+ kCIInputBackgroundImageKey:bci,
168
+
169
+ kCIInputMaskImageKey:mci])?.outputImage
170
+
171
+ self.displayView.image = UIImage(ciImage: compositeImage!)
172
+
173
+ ```
174
+
175
+ ただ、合成後の画像がカメラロールに保存できないです。
176
+
177
+ 保存完了のメッセージは出るのですが、カメラロールに存在しません。
178
+
179
+ 何か確認すべき点などございませんでしょうか。