Suche senden
Hochladen
iPhoneカメラアプリ開発入門(第1回)
•
12 gefällt mir
•
23,428 views
Takashi Ohtsuka
Folgen
Melden
Teilen
Melden
Teilen
1 von 35
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
カメラアプリ開発入門3
カメラアプリ開発入門3
Takashi Ohtsuka
AVFoundationを使った無音カメラアプリの作り方
AVFoundationを使った無音カメラアプリの作り方
Takashi Ohtsuka
顔認識技術を使った面白いスマホアプリ3つ(動画も撮れる)
顔認識技術を使った面白いスマホアプリ3つ(動画も撮れる)
新潟コンサルタント横田秀珠
Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦
Yoichiro Sakurai
Google admobmediationで広告最適化
Google admobmediationで広告最適化
Yoichiro Sakurai
20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop
Yoichiro Sakurai
HMCN - センサー&デバイスでできる楽しい事例紹介
HMCN - センサー&デバイスでできる楽しい事例紹介
Satoshi Maemoto
iBeaconsを触ってみた
iBeaconsを触ってみた
Atsushi Ito
Empfohlen
カメラアプリ開発入門3
カメラアプリ開発入門3
Takashi Ohtsuka
AVFoundationを使った無音カメラアプリの作り方
AVFoundationを使った無音カメラアプリの作り方
Takashi Ohtsuka
顔認識技術を使った面白いスマホアプリ3つ(動画も撮れる)
顔認識技術を使った面白いスマホアプリ3つ(動画も撮れる)
新潟コンサルタント横田秀珠
Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦
Yoichiro Sakurai
Google admobmediationで広告最適化
Google admobmediationで広告最適化
Yoichiro Sakurai
20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop
Yoichiro Sakurai
HMCN - センサー&デバイスでできる楽しい事例紹介
HMCN - センサー&デバイスでできる楽しい事例紹介
Satoshi Maemoto
iBeaconsを触ってみた
iBeaconsを触ってみた
Atsushi Ito
Git for iOS beginner
Git for iOS beginner
bibmeke
第16回iPhoneアプリ開発勉強会発表資料
第16回iPhoneアプリ開発勉強会発表資料
Ke Ta
第26回名古屋iPhoneアプリ開発勉強会アンケート結果
第26回名古屋iPhoneアプリ開発勉強会アンケート結果
Takatoshi Hattori
No smokingplus
No smokingplus
Yutaka Matsui
Cos0419
Cos0419
towaki777
RubyMotionでiOS開発
RubyMotionでiOS開発
Masakuni Kato
Uicollectionview
Uicollectionview
towaki777
第16回勉強会のビギナー資料
第16回勉強会のビギナー資料
towaki777
SQLiteを手軽に・セキュアに
SQLiteを手軽に・セキュアに
Tomotsune Murata
Diverse会社概要
Diverse会社概要
Tomohiro Kokubo
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
irgaly
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
Yuusuke Takeuchi
Photos vs Assets Library - いまさら始めるPhotos.framework
Photos vs Assets Library - いまさら始めるPhotos.framework
Kaname Noto
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
Atsushi Tadokoro
UIImagePickerController よもやま話
UIImagePickerController よもやま話
Kei Kusakari
メガドラ実機で自作のROMファイルを動かしてみた話
メガドラ実機で自作のROMファイルを動かしてみた話
Yuma Ohgami
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
Takashi Yoshinaga
あの言語で画像処理する ライブラリを作った件
あの言語で画像処理する ライブラリを作った件
Sakiyama Kei
AI x WebAR! MediaPipeの顔認識を使ってみよう!
AI x WebAR! MediaPipeの顔認識を使ってみよう!
Takashi Yoshinaga
Uiテスト@yidev
Uiテスト@yidev
Yusuke Kita
Build your AR app by using AR Foundation samples
Build your AR app by using AR Foundation samples
Hirokazu Egashira
I phonedevws20121028ci filter
I phonedevws20121028ci filter
ZuQ9Nn
Weitere ähnliche Inhalte
Andere mochten auch
Git for iOS beginner
Git for iOS beginner
bibmeke
第16回iPhoneアプリ開発勉強会発表資料
第16回iPhoneアプリ開発勉強会発表資料
Ke Ta
第26回名古屋iPhoneアプリ開発勉強会アンケート結果
第26回名古屋iPhoneアプリ開発勉強会アンケート結果
Takatoshi Hattori
No smokingplus
No smokingplus
Yutaka Matsui
Cos0419
Cos0419
towaki777
RubyMotionでiOS開発
RubyMotionでiOS開発
Masakuni Kato
Uicollectionview
Uicollectionview
towaki777
第16回勉強会のビギナー資料
第16回勉強会のビギナー資料
towaki777
SQLiteを手軽に・セキュアに
SQLiteを手軽に・セキュアに
Tomotsune Murata
Diverse会社概要
Diverse会社概要
Tomohiro Kokubo
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
irgaly
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
Yuusuke Takeuchi
Photos vs Assets Library - いまさら始めるPhotos.framework
Photos vs Assets Library - いまさら始めるPhotos.framework
Kaname Noto
Andere mochten auch
(13)
Git for iOS beginner
Git for iOS beginner
第16回iPhoneアプリ開発勉強会発表資料
第16回iPhoneアプリ開発勉強会発表資料
第26回名古屋iPhoneアプリ開発勉強会アンケート結果
第26回名古屋iPhoneアプリ開発勉強会アンケート結果
No smokingplus
No smokingplus
Cos0419
Cos0419
RubyMotionでiOS開発
RubyMotionでiOS開発
Uicollectionview
Uicollectionview
第16回勉強会のビギナー資料
第16回勉強会のビギナー資料
SQLiteを手軽に・セキュアに
SQLiteを手軽に・セキュアに
Diverse会社概要
Diverse会社概要
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
Photos vs Assets Library - いまさら始めるPhotos.framework
Photos vs Assets Library - いまさら始めるPhotos.framework
Ähnlich wie iPhoneカメラアプリ開発入門(第1回)
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
Atsushi Tadokoro
UIImagePickerController よもやま話
UIImagePickerController よもやま話
Kei Kusakari
メガドラ実機で自作のROMファイルを動かしてみた話
メガドラ実機で自作のROMファイルを動かしてみた話
Yuma Ohgami
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
Takashi Yoshinaga
あの言語で画像処理する ライブラリを作った件
あの言語で画像処理する ライブラリを作った件
Sakiyama Kei
AI x WebAR! MediaPipeの顔認識を使ってみよう!
AI x WebAR! MediaPipeの顔認識を使ってみよう!
Takashi Yoshinaga
Uiテスト@yidev
Uiテスト@yidev
Yusuke Kita
Build your AR app by using AR Foundation samples
Build your AR app by using AR Foundation samples
Hirokazu Egashira
I phonedevws20121028ci filter
I phonedevws20121028ci filter
ZuQ9Nn
AI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボ
AI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボ
Takashi Yoshinaga
JCROM で Android の「真の力」を解き放て
JCROM で Android の「真の力」を解き放て
android sola
Firefox os simulatorについて
Firefox os simulatorについて
Hiroki Kakuno
Android Hacks - Hack30
Android Hacks - Hack30
Masanori Ohkawara
Ähnlich wie iPhoneカメラアプリ開発入門(第1回)
(13)
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
UIImagePickerController よもやま話
UIImagePickerController よもやま話
メガドラ実機で自作のROMファイルを動かしてみた話
メガドラ実機で自作のROMファイルを動かしてみた話
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
あの言語で画像処理する ライブラリを作った件
あの言語で画像処理する ライブラリを作った件
AI x WebAR! MediaPipeの顔認識を使ってみよう!
AI x WebAR! MediaPipeの顔認識を使ってみよう!
Uiテスト@yidev
Uiテスト@yidev
Build your AR app by using AR Foundation samples
Build your AR app by using AR Foundation samples
I phonedevws20121028ci filter
I phonedevws20121028ci filter
AI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボ
AI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボ
JCROM で Android の「真の力」を解き放て
JCROM で Android の「真の力」を解き放て
Firefox os simulatorについて
Firefox os simulatorについて
Android Hacks - Hack30
Android Hacks - Hack30
iPhoneカメラアプリ開発入門(第1回)
1.
カメラアプリ開発入門 (第一回) まずは基本の基本から CoreImageを使った画像加工まで 2013/5/25 名古屋iPhone開発者勉強会 13年5月25日土曜日
2.
大塚 崇(おおつか たかし) DJ / フリーランスのエンジニア・プログラマ ハンドル名:
takatronix Facebook/Twitter/Skype/LINE/Weibo -> takatronix http://takatronix.com 趣味興味:旅行、語学、筋トレ、LEGO、FX、心理学、 脳科学、宇宙 自己紹介 13年5月25日土曜日
3.
リリースしたアプリ デカ目ミラー、SEXY SCAN、 放射能汚染地 図、和牛スキャン
... デカ目ミラー(SexyMirror)2013/1リリース イギリスのiPhone総合で何故か10位に、 現在40万ダウンロード 13年5月25日土曜日
4.
iOSカメラAPI UIImagePickerController AVFoundation.framework iOS4から、標準のカメラUIを使わない アプリが作れる よくあるカメラのUI 非常に簡単だが自由がない リアルタイムエフェクトはできない 実装は結構大変だがなんでもできる 13年5月25日土曜日
5.
iOS画像処理方法 CoreImage (CPU/GPU) OpenGL (GPU) ピクセル処理
(CPU) OpenCV (CPU/GPU) vImage (GPU) 13年5月25日土曜日
6.
UIImagePickerController の使い方 最初の一歩 13年5月25日土曜日
7.
プロジェクトの作成 13年5月25日土曜日
8.
適当に設定して 13年5月25日土曜日
9.
適当に画面を設計 13年5月25日土曜日
10.
ViewController.h に追加 #import <UIKit/UIKit.h> @interface
ViewController : UIViewController <UIImagePickerControllerDelegate,UINavigationControllerDelegate> 13年5月25日土曜日
11.
ViewController.hに追加 #import <UIKit/UIKit.h> @interface ViewController
: UIViewController <UIImagePickerControllerDelegate,UINavigationCon @property IBOutlet UIImageView* imageView; @end 13年5月25日土曜日
12.
フォトライブラリを開く処理 ViewController.mに追加 // フォトライブラリを開く - (IBAction)openPhotoLibrary:(id)sender
{ // フォトライブラリが使えるかチェック // カメラを開く場合 // UIImagePickerControllerSourceTypePhotoLibrary を // UIImagePickerControllerSourceTypeCamera に変更 ! if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) ! { // UIImagePickerControllerを作成し初期化 new = alloc + init ! ! UIImagePickerController* imagePicker = [UIImagePickerController new]; // カメラを開く場合 sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // 編集可能にする場合はYES imagePicker.allowsEditing = YES; // 自分への通知設定 imagePicker.delegate = self; // フォトライブラリを開く [self presentViewController:imagePicker animated:YES completion:^{ // 開いたタイミングに呼ばれる NSLog(@"(1)フォトライブラリを開いた"); }]; } } 13年5月25日土曜日
13.
ViewController.mに追加 撮影後orサムネイル選択後に呼ばれる処理 テキスト // 写真撮影後orサムネイル選択後に呼ばれる処理 -(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info { ! // オリジナル画像 ! UIImage* originalImage = (UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage]; ! // 編集画像 ! UIImage* editedImage = (UIImage *)[info objectForKey:UIImagePickerControllerEditedImage]; UIImage* savedImage; if(editedImage){ savedImage = editedImage; } else{ savedImage = originalImage; } // 選択された画像を表示 _imageView.image = savedImage; // 開いているカメラ・フォトライブラリを閉じる [self dismissViewControllerAnimated:YES completion:^{ }]; } 13年5月25日土曜日
14.
imageViewを接続 13年5月25日土曜日
15.
ボタンに接続 13年5月25日土曜日
16.
ボタンを押して 13年5月25日土曜日
17.
あれ?(^_^;)? 13年5月25日土曜日
18.
シミュレータに画像がない場合 Safariで画像検索して保存してね 13年5月25日土曜日
19.
どぉーん 13年5月25日土曜日
20.
どぉーん 13年5月25日土曜日
21.
フィルタがないカメラアプリ とか小学生までだよねー? 13年5月25日土曜日
22.
CoreImageを使う 13年5月25日土曜日
23.
CoreImage.frameworkを追加 13年5月25日土曜日
24.
ViewController.mに追加 #import "ViewController.h" #import <CoreImage/CoreImage.h> @interface
ViewController () @end 13年5月25日土曜日
25.
モノクロフィルタを作る ViewController.mに追加 // グレースケール画像を作成する -(UIImage*)monochromeFilter:(UIImage*)image{ // UIImageをCoreImageに変換する CIImage*
ciImage = [[CIImage alloc] initWithImage:image]; // CoreImageフィルタを作成する CIFilter* ciFilter = [CIFilter filterWithName:@"CIColorMonochrome" keysAndValues:kCIInputImageKey, ciImage, // パラメータ:入力色(RGBのフィルタ係数) // セピア色にするなら [CIColor colorWithRed:1.0 green:0.7 blue:0.4] @"inputColor", [CIColor colorWithRed:1.0 green:1.0 blue:1.0], // パラメータ(度合い) // 0.5にすれば半分の適用度になります @"inputIntensity", [NSNumber numberWithFloat:1.0], nil]; // CoreImageのコンテクストを作成 CIContext* ciContext = [CIContext contextWithOptions:nil]; // フィルタを適用 CGImageRef cgImage = [ciContext createCGImage:ciFilter.outputImage fromRect:[ciFilter.outputImage extent]]; // CGImageRefをUIImageに変換 UIImage* retImage = [UIImage imageWithCGImage:cgImage scale:image.scale orientation:UIImageOrientationUp]; // CGImage開放 CGImageRelease(cgImage); return retImage; } 13年5月25日土曜日
26.
フィルタを適用する ViewController.mを修正 // 写真撮影後orサムネイル選択後に呼ばれる処理 -(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info { ! // オリジナル画像 ! UIImage* originalImage = (UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage]; ! // 編集画像 ! UIImage* editedImage = (UIImage *)[info objectForKey:UIImagePickerControllerEditedImage]; UIImage* savedImage; if(editedImage){ savedImage = editedImage; } else{ savedImage = originalImage; } // モノクロフィルタを適用してから // 選択された画像を表示 _imageView.image = [self monochromeFilter:savedImage]; // 開いているカメラ・フォトライブラリを閉じる [self dismissViewControllerAnimated:YES completion:^{ }]; } 13年5月25日土曜日
27.
パラメータを変えてみよう @"inputColor", [CIColor colorWithRed:1.0
green:0.7 blue:0.4], @"inputColor", [CIColor colorWithRed:1.0 green:1 blue:0], @"inputIntensity", [NSNumber numberWithFloat:0.5], 13年5月25日土曜日
28.
ケラレフィルタ(カメラの周辺光量落ち) Instagramっぽい効果をだせます 13年5月25日土曜日
29.
ケラレフィルタを作る // ケラレフィルタ(カメラの周辺光量落ち) -(UIImage*)vignetteFilter:(UIImage*) image{ //
UIImageをCoreImageに変換する CIImage* ciImage = [[CIImage alloc] initWithImage:image]; // CoreImageフィルタを作成する CIFilter* ciFilter = [CIFilter filterWithName:@"CIVignette" keysAndValues:kCIInputImageKey, ciImage, // @"inputRadius", [NSNumber numberWithFloat:2.0], // パラメータ(度合い) // 0.5にすれば半分の適用度になります @"inputIntensity", [NSNumber numberWithFloat:1.0], nil]; // CoreImageのコンテクストを作成 CIContext* ciContext = [CIContext contextWithOptions:nil]; // フィルタを適用 CGImageRef cgImage = [ciContext createCGImage:ciFilter.outputImage fromRect:[ciFilter.outputImage extent]]; // CGImageRefをUIImageに変換 UIImage* retImage = [UIImage imageWithCGImage:cgImage scale:image.scale orientation:UIImageOrientationUp]; // CGImage開放 CGImageRelease(cgImage); return retImage; } ViewController.mに追加 13年5月25日土曜日
30.
// 写真撮影後orサムネイル選択後に呼ばれる処理 -(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)in { ! // オリジナル画像 ! UIImage* originalImage = (UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage]; ! // 編集画像 ! UIImage* editedImage = (UIImage *)[info objectForKey:UIImagePickerControllerEditedImage]; UIImage* savedImage; if(editedImage){ savedImage = editedImage; } else{ savedImage = originalImage; } // モノクロフィルタ+ケラレフィルタを適用し、画面に表示 _imageView.image = [self vignetteFilter:[self monochromeFilter:savedImage]]; // 開いているカメラ・フォトライブラリを閉じる [self dismissViewControllerAnimated:YES completion:^{ }]; } モノクロフィルタ+ケラレフィルタを適用 13年5月25日土曜日
31.
ちょと味がでますね 13年5月25日土曜日
32.
カメラロールへ保存 -(void)image:(UIImage*)image didFinishSavingWithError:(NSError*)error contextInfo:(void*)contextInfo{ if(error){ NSLog(@"Error"); }else{ NSLog(@"保存した"); } } ViewController.mへ追加 //
写真撮影後orサムネイル選択後に呼ばれる処理 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { ! // オリジナル画像 ! UIImage* originalImage = (UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage]; ! // 編集画像 ! UIImage* editedImage = (UIImage *)[info objectForKey:UIImagePickerControllerEditedImage]; UIImage* savedImage; if(editedImage){ savedImage = editedImage; } else{ savedImage = originalImage; } // モノクロフィルタ+ケラレフィルタを適用し、画面に表示 _imageView.image = [self vignetteFilter:[self monochromeFilter:savedImage]]; // カメラロールへ保存する UIImageWriteToSavedPhotosAlbum(_imageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); // 開いているカメラ・フォトライブラリを閉じる [self dismissViewControllerAnimated:YES completion:^{ }]; } 13年5月25日土曜日
33.
プロジェクトとこのスライドはここから 落とせますよ。 http://takatronix.com/tutorial/20130525.zip 次回から実機転送が必須(予定)になりますの で、興味がある人は、Appleに開発者登録と実 機転送まで、済ましておいてください。 13年5月25日土曜日
34.
takatronix検索 http://takatronix.com 13年5月25日土曜日
35.
ありがとうございました takatronix検索 http://takatronix.com 13年5月25日土曜日
Jetzt herunterladen