質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1625閲覧

fatal error / swift - CIImage

HSG

総合スコア41

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/05/31 14:37

ios swift での質問です。

CoreImageを使って画像処理を行っております。
1回目は処理が通りますが、2回目処理を通す(ボタンがトリガーになってます)と、

「fatal error: unexpectedly found nil while unwrapping an Optional value」

とエラーで返されてしまします。

該当コードはこちらです。

let filteredImage = CIImage(image: self.selectedPhoto.image!)
let mySepiaFilter = CIFilter(name: "CISepiaTone")
mySepiaFilter!.setValue(filteredImage, forKey: kCIInputImageKey)
mySepiaFilter!.setValue(1.0, forKey: kCIInputIntensityKey)
let myOutputImage : CIImage = (mySepiaFilter!.outputImage)! //2回目はここでエラーが出ているようです
selectedPhoto.image = UIImage(CIImage: myOutputImage)

恐れ入りますが、どなたかわかる方がいらっしゃいましたらご教授くださいませ!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下を参考にして書きなおしてみたところ複数回呼んでも問題なく実行できました。
セピア【CISepiaTone】

swift

1if let ciImage = CIImage(image: self.selectedPhoto.image!), let ciFilter = CIFilter(name: "CISepiaTone") { 2 ciFilter.setValue(ciImage, forKey: kCIInputImageKey) 3 ciFilter.setValue(1.0, forKey: "inputIntensity") 4 let ciContext = CIContext(options: nil) 5 6 if let outputImage = ciFilter.outputImage { 7 let cgimg = ciContext.createCGImage(outputImage, fromRect: outputImage.extent) 8 selectedPhoto.image = UIImage(CGImage: cgimg, scale:1.0, orientation:UIImageOrientation.Up) 9 } 10}

あまり詳しく無いので詳細は分かる方にお願いしたいと思いますが、、、2回目の
let filteredImage = CIImage(image: self.selectedPhoto.image!)
の戻りがそもそもnilになっているのでCIImageの初期化に失敗しているようです。

self.selectedPhoto.image自体はUIImageとして認識しているようではありますが、、、

投稿2016/05/31 15:09

編集2016/05/31 15:22
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HSG

2016/05/31 15:14

ありがとうございます! コピペではめ込んだところ、バッチリ処理が通りました! また明日参考を読んで勉強してみます! うおお!ってなりました。 ありがとうございました。 取り急ぎお礼まで!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問