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

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

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

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

2回答

2229閲覧

iPhone/iOSアプリ開発/CIImageの画像変換について

退会済みユーザー

退会済みユーザー

総合スコア0

iOS

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2017/05/15 13:48

編集2017/05/15 13:50

###前提・実現したいこと
Swift初心者です。無知でバカなことしていると思いますが、どなたかお力貸してください。

iPhoneアプリ開発に関して教えてください。
ボタンクリック後、表示されている画像をCIImageを用いて画像処理したいのですが、エラーが出ていて対応の仕方がわかりません。どう直したら良いのでしょうか?
初期化しろと言われていますが書き方がわかりません。。

###発生している問題・エラーメッセージ

Ambiguous use of 'init(CIImage:)'

※エラーは、下記に対して出ます
imageView.image = UIImage(CIImage: myOutputImage)

###該当のソースコード
(該当箇所のみ表示しています。)

var croppedImage:UIImage! //前画面から渡される、今回変換したい画像です。 var myOutputImage: CIImage! @IBAction func editButton_Clicked(_ sender: Any) { let myInvertFilter = CIFilter(name: "CIColorInvert") myInvertFilter?.setValue(croppedImage, forKey: kCIInputImageKey) let myOutputImage : CIImage = myInvertFilter!.outputImage! imageView.image = UIImage(CIImage: myOutputImage)

}

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

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

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

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

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

guest

回答2

0

ベストアンサー

init(ciImage: CIImage)もありますよ。
なのでこうかと思います。

Swift

1imageView.image = UIImage(ciImage: myOutputImage)

多分Swift2だとinit(CIImage: CIImage)だったと思うのでそれを参考にしたのかと思います。

投稿2017/05/15 14:58

u39ueda

総合スコア950

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

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

退会済みユーザー

退会済みユーザー

2017/05/16 12:53

おっしゃる通りです!ただ、これに変換したら次のエラーがでてしまいました。わかりますでしょうか。 Augument labels '(ciimage)' do not match any available overloads Overloads for 'UIImage' exist with these partially matching parameter lists: (imageLiteralResourceName: String), (named: String), (contentsOfFile: String), (data: Data), (cgImage: CGImage), (ciImage: CIImage), (CGImage: CGImage), (CIImage: CIImage), (coder: NSCoder)
退会済みユーザー

退会済みユーザー

2017/05/16 12:54

一部変更しましたので再度ソースを添付させていただきます。 ''' // MARK: Private Functions //追加 private func viewConfigurations(){ imageView.image = croppedImage } var myOutputImage: CIImage! @IBAction func editButton_Clicked(_ sender: Any) { // CIFilterをインスタンス化. let myInvertFilter = CIFilter(name: "CIColorInvert") // イメージのセット. myInvertFilter?.setValue(croppedImage.ciImage, forKey: kCIInputImageKey) // アウトプット let myOutputImage : CIImage = myInvertFilter!.outputImage! croppedImage = UIImage(ciimage: myOutputImage) viewConfigurations() // 再描画. } '''
u39ueda

2017/05/16 13:18 編集

ciimageではなくciImageです。二つ目の i は大文字です。それとコメント欄にソースを貼り付けるのは避けてください。読みにくくなりますので。
退会済みユーザー

退会済みユーザー

2017/05/16 14:25

はい、こちらの問題は解決しました!本当にありがとうございます!
guest

0

CIImage:ではなくてcgImage:ですね。

swift

1imageView.image = UIImage(cgImage: myOutputImage)

投稿2017/05/15 14:23

_Kentarou

総合スコア8490

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

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

退会済みユーザー

退会済みユーザー

2017/05/16 12:11

こちらの方法ですと、次のようなエラーが出てしまいました。 fatal error: unexpectedly found nil while unwrapping an Optional value
退会済みユーザー

退会済みユーザー

2017/05/16 12:12 編集

一部割愛していますが、下記がTheradです。 ``` editButton_Clicked(Any) -> (): 0x10ef4cb70 <+0>: pushq %rbp 0x10ef4cb71 <+1>: movq %rsp, %rbp 0x10ef4cb74 <+4>: subq $0xd0, %rsp 0x10ef4cb7b <+11>: movq %rdi, -0x8(%rbp) 0x10ef4cb7f <+15>: movq %rsi, -0x10(%rbp) 0x10ef4cb83 <+19>: movq %rsi, -0x20(%rbp) 0x10ef4cb87 <+23>: callq 0x10ef4cf10 ; type metadata accessor for __ObjC.CIFilter at FADetailVC.swift 0x10ef4cb8c <+28>: leaq 0x3cc88(%rip), %rdi ; "CIColorInvert" 0x10ef4cb93 <+35>: movl $0xd, %ecx 0x10ef4cb98 <+40>: movl %ecx, %esi 0x10ef4cb9a <+42>: movl $0x1, %edx 0x10ef4cb9f <+47>: movq %rax, -0x28(%rbp) 0x10ef4cba3 <+51>: callq 0x10ef7a768 ; symbol stub for: Swift.String.init (_builtinStringLiteral : Builtin.RawPointer, utf8CodeUnitCount : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String 0x10ef4cba8 <+56>: movq %rax, %rdi 0x10ef4cbab <+59>: movq %rdx, %rsi 0x10ef4cbae <+62>: movq %rcx, %rdx 0x10ef4cbb1 <+65>: movq -0x28(%rbp), %rcx 0x10ef4cbb5 <+69>: callq 0x10ef4ce90 ; @nonobjc __ObjC.CIFilter.__allocating_init (name : Swift.String) -> Swift.Optional<__ObjC.CIFilter> at FADetailVC.swift 0x10ef4cbba <+74>: movq %rax, %rdi 0x10ef4cbbd <+77>: movq %rax, -0x30(%rbp) 0x10ef4cbc1 <+81>: callq 0x10ef7aa2c ; symbol stub for: objc_retain 0x10ef4cbc6 <+86>: movq -0x30(%rbp), %rcx 0x10ef4cbca <+90>: cmpq $0x0, %rcx 0x10ef4cbce <+94>: sete %r8b 0x10ef4cbd2 <+98>: xorb $-0x1, %r8b 0x10ef4cbd6 <+102>: testb $0x1, %r8b 0x10ef4cbda <+106>: movq %rax, -0x38(%rbp) 0x10ef4cbde <+110>: jne 0x10ef4cbe5 ; <+117> at FADetailVC.swift:82 0x10ef4cbe0 <+112>: jmp 0x10ef4ce78 ; <+776> at FADetailVC.swift:82 0x10ef4cbe5 <+117>: movq 0x406d4(%rip), %rax ; (void *)0x000000011326c068: swift_isaMask 0x10ef4cbec <+124>: movq -0x30(%rbp), %rcx 0x10ef4cbf0 <+128>: movq -0x20(%rbp), %rdx 0x10ef4cbf4 <+132>: movq (%rdx), %rsi 0x10ef4cbf7 <+135>: andq (%rax), %rsi 0x10ef4cbfa <+138>: movq %rdx, %rdi 0x10ef4cbfd <+141>: movq %rcx, -0x40(%rbp) 0x10ef4cc01 <+145>: callq *0xb0(%rsi) 0x10ef4cc07 <+151>: movq %rax, -0x18(%rbp) 0x10ef4cc0b <+155>: movq -0x30(%rbp), %rax 0x10ef4cc0f <+159>: cmpq $0x0, -0x18(%rbp) 0x10ef4cc14 <+164>: jne 0x10ef4cc5e ; <+238> at FADetailVC.swift 0x10ef4cc16 <+166>: movq -0x30(%rbp), %rax 0x10ef4cc1a <+170>: movq -0x30(%rbp), %rax 0x10ef4cc1e <+174>: movq -0x30(%rbp), %rax 0x10ef4cc22 <+178>: leaq 0x399a1(%rip), %rdi ; "fatal error" 0x10ef4cc29 <+185>: movl $0xb, %eax 0x10ef4cc2e <+190>: movl %eax, %esi 0x10ef4cc30 <+192>: movl $0x2, %eax 0x10ef4cc35 <+197>: leaq 0x39954(%rip), %rcx ; "unexpectedly found nil while unwrapping an Optional value" 0x10ef4cc3c <+204>: movl $0x39, %edx 0x10ef4cc41 <+209>: movl %edx, %r8d 0x10ef4cc44 <+212>: xorl %edx, %edx 0x10ef4cc46 <+214>: movl %edx, -0x44(%rbp) 0x10ef4cc49 <+217>: movl %eax, %edx 0x10ef4cc4b <+219>: movl %eax, %r9d 0x10ef4cc4e <+222>: movl $0x0, (%rsp) 0x10ef4cc55 <+229>: callq 0x10ef7a930 ; symbol stub for: function signature specialization <preserving fragile attribute, Arg[2] = Dead, Arg[3] = Dead> of Swift._fatalErrorMessage (Swift.StaticString, Swift.StaticString, file : Swift.StaticString, line : Swift.UInt, flags : Swift.UInt32) -> Swift.Never 0x10ef4cc5a <+234>: movq -0x30(%rbp), %rcx 0x10ef4cc5e <+238>: leaq -0x18(%rbp), %rax 0x10ef4cc62 <+242>: movq -0x18(%rbp), %rcx 0x10ef4cc66 <+246>: movq %rcx, %rdi 0x10ef4cc69 <+249>: movq %rax, -0x50(%rbp) 0x10ef4cc6d <+253>: movq %rcx, -0x58(%rbp) 0x10ef4cc71 <+257>: callq 0x10ef7aa2c ; symbol stub for: objc_retain 0x10ef4cc76 <+262>: movq 0x55673(%rip), %rsi ; "CIImage" 0x10ef4cc7d <+269>: movq -0x58(%rbp), %rcx 0x10ef4cc81 <+273>: movq %rcx, %rdi 0x10ef4cc84 <+276>: movq %rax, -0x60(%rbp) 0x10ef4cc88 <+280>: callq 0x10ef7aa14 ; symbol stub for: objc_msgSend 0x10ef4cc8d <+285>: movq %rax, %rdi 0x10ef4cc90 <+288>: callq 0x10ef7aa32 ; symbol stub for: objc_retainAutoreleasedReturnValue 0x10ef4cc95 <+293>: cmpq $0x0, %rax 0x10ef4cc99 <+297>: sete %dl 0x10ef4cc9c <+300>: xorb $-0x1, %dl 0x10ef4cc9f <+303>: movq -0x30(%rbp), %rcx 0x10ef4cca3 <+307>: testb $0x1, %dl 0x10ef4cca6 <+310>: movq %rax, -0x68(%rbp) 0x10ef4ccaa <+314>: jne 0x10ef4ccae ; <+318> at FADetailVC.swift:82 0x10ef4ccac <+316>: jmp 0x10ef4ccbc ; <+332> at FADetailVC.swift:82 0x10ef4ccae <+318>: movq -0x68(%rbp), %rax 0x10ef4ccb2 <+322>: movq -0x30(%rbp), %rcx 0x10ef4ccb6 <+326>: movq %rax, -0x70(%rbp) 0x10ef4ccba <+330>: jmp 0x10ef4ccc8 ; <+344> at FADetailVC.swift:82 0x10ef4ccbc <+332>: movq -0x30(%rbp), %rax 0x10ef4ccc0 <+336>: xorl %ecx, %ecx 0x10ef4ccc2 <+338>: movl %ecx, %eax 0x10ef4ccc4 <+340>: movq %rax, -0x70(%rbp) 0x10ef4ccc8 <+344>: movq -0x70(%rbp), %rax 0x10ef4cccc <+348>: movq 0x405e5(%rip), %rcx ; (void *)0x000000011115b398: kCIInputImageKey 0x10ef4ccd3 <+355>: movq (%rcx), %rcx 0x10ef4ccd6 <+358>: movq %rcx, %rdi 0x10ef4ccd9 <+361>: movq %rax, -0x78(%rbp) 0x10ef4ccdd <+365>: movq %rcx, -0x80(%rbp) 0x10ef4cce1 <+369>: callq 0x10ef7aa2c ; symbol stub for: objc_retain 0x10ef4cce6 <+374>: movq -0x80(%rbp), %rdi 0x10ef4ccea <+378>: movq %rax, -0x88(%rbp) 0x10ef4ccf1 <+385>: callq 0x10ef7a97e ; symbol stub for: static (extension in Foundation):Swift.String._unconditionallyBridgeFromObjectiveC (Swift.Optional<__ObjC.NSString>) -> Swift.String 0x10ef4ccf6 <+390>: movq %rax, %rdi 0x10ef4ccf9 <+393>: movq %rdx, %rsi 0x10ef4ccfc <+396>: movq %rcx, %rdx 0x10ef4ccff <+399>: movq %rcx, -0x90(%rbp) 0x10ef4cd06 <+406>: callq 0x10ef7a6c6 ; symbol stub for: (extension in Foundation):Swift.String._bridgeToObjectiveC () -> __ObjC.NSString 0x10ef4cd0b <+411>: movq 0x555e6(%rip), %rsi ; "setValue:forKey:" 0x10ef4cd12 <+418>: movq %rax, %rcx 0x10ef4cd15 <+421>: movq -0x40(%rbp), %rdx 0x10ef4cd19 <+425>: movq %rdx, %rdi 0x10ef4cd1c <+428>: movq -0x78(%rbp), %rdx 0x10ef4cd20 <+432>: movq %rax, -0x98(%rbp) 0x10ef4cd27 <+439>: callq 0x10ef7aa14 ; symbol stub for: objc_msgSend 0x10ef4cd2c <+444>: movq -0x98(%rbp), %rdi 0x10ef4cd33 <+451>: callq 0x10ef7aa26 ; symbol stub for: objc_release 0x10ef4cd38 <+456>: movq -0x90(%rbp), %rdi 0x10ef4cd3f <+463>: callq 0x10ef7aa98 ; symbol stub for: swift_unknownRelease 0x10ef4cd44 <+468>: movq -0x78(%rbp), %rdi 0x10ef4cd48 <+472>: callq 0x10ef7aa98 ; symbol stub for: swift_unknownRelease 0x10ef4cd4d <+477>: movq -0x58(%rbp), %rdi 0x10ef4cd51 <+481>: callq 0x10ef7aa26 ; symbol stub for: objc_release 0x10ef4cd56 <+486>: movq -0x50(%rbp), %rax 0x10ef4cd5a <+490>: movq (%rax), %rdi 0x10ef4cd5d <+493>: callq 0x10ef7aa26 ; symbol stub for: objc_release 0x10ef4cd62 <+498>: movq -0x30(%rbp), %rdi 0x10ef4cd66 <+502>: callq 0x10ef7aa26 ; symbol stub for: objc_release 0x10ef4cd6b <+507>: movq -0x30(%rbp), %rax 0x10ef4cd6f <+511>: movq -0x30(%rbp), %rdi 0x10ef4cd73 <+515>: callq 0x10ef7aa2c ; symbol stub for: objc_retain 0x10ef4cd78 <+520>: movq -0x30(%rbp), %rdi 0x10ef4cd7c <+524>: movq -0x30(%rbp), %rdi 0x10ef4cd80 <+528>: cmpq $0x0, %rdi 0x10ef4cd84 <+532>: movq %rax, -0xa0(%rbp) ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問