質問編集履歴
2
解決した為、その部分のコードを追記
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
ご指摘を受け、お教え頂いたヒントより一部解決した為、その部分を追記
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
|
+
何か確認すべき点などございませんでしょうか。
|