最近読んだ本 iPhoneデジカメプログラミング
カメラアプリを作る予定はなかったので2011年3月に発売されてからしばらく様子を見ていたが、そろそろ作ってみようと思ったのと、その他有用な情報がつまってそうだったので購入。
著者は仙台市のかたち開発の人で、昔からMac用のアプリケーションを作っていた人らしい。
- サンプルコードがあるページ ソフトバンク クリエイティブ:iPhoneデジカメプログラミング
- 著者のブログ
- 著者のTwitterアカウント @saruhidemi
本文中は、Xcode 4で説明は統一されている。Xcode 4は出たばかりでまだ移行していないが、それほど変わっていないだろうしこれからはXcode 4がメインになっていくだろうから悪くない選択だと思う。
- 第1章 iPhoneのカメラとグラフィック : iPhoneのカメラの性能、UIKit, Core Graphics, OpenGL ES の簡単な紹介。
- 第2章 画像処理の基礎 : 色とは、画像圧縮とは、など画像処理の基礎と、iPhone実機に転送する手順の簡単な紹介。
- 第3章 BasicCamera:カメラアプリケーションの作成 : ごく基本的なカメラアプリを作ってみる章。Xcode4の使い方の説明になっている。UIImagePickerControllerやUIImageWriteToSavedPhotosAlbum などがつかわれる。
- 第4章 DoodleCamera:プリクラ風カメラアプリケーションの作成 : カメラの画像の上に指で絵を描いて保存できるアプリ。Core Graphicsの機能が多く使われている。
- 第5章 FlickrMap:Flickr投稿アプリケーションの作成 : Flickr API を使って画像を投稿する。JSON Framework を使う。
- 第6章 FilterCamera:トイカメラアプリケーションの作成 : OpenCVのフィルタを使って、写真にさまざまなエフェクトをかける。
- 第7章 BookScan:書籍検索アプリケーションの作成 : オープンソースの ZBar を使ってバーコードをスキャンする。
- 第8章 ARLocalSearch:ARアプリケーションの作成 : iPhone ARkit と JSON Framework を使ってARアプリを作ってみる。
ざっと見ても分かるとおり、かなり実践的で盛りだくさんな内容だ。
4章はおもしろそうなので写経を始めてみた。そしていきなりさっぱりわからなくてはまる。
そして写経したらどうにもまともに動かずしばらく悩んでいたが、結局本に間違いが見つかった。(著者の方に確認した)
下記のコメントアウトしている2行はP.77にコメントアウトされずに存在しているが、そのままだと保存した画像にカメラからの画像が入らない。
ちゃんと CGContextTranslateCTM の意味が分かっていれば分かるのだが知らずに写経しているとこれははまる。
まだ正誤情報に載っていなかったのでここに書いておく。
+(CGImageRef)rotateImage:(CGImageRef)image mirrored:(BOOL)mirrored {
int width = CGImageGetWidth(image);
int height = CGImageGetHeight(image);
CGContextRef context = [CGUtil newBlankBitmapContext:CGSizeMake(height, width)];
if(mirrored) {
CGContextTranslateCTM(context, height, width);
CGContextScaleCTM(context, -1.0, 1.0);
} else {
CGContextTranslateCTM(context, 0, width);
}
// CGContextTranslateCTM(context, height, width);
// CGContextScaleCTM(context, -1.0, 1.0);
CGContextRotateCTM(context, -M_PI/2);
CGContextDrawImage(context, CGRectMake(0, 0, width, height), image);
CGImageRef cgImage = CGBitmapContextCreateImage(context);
CGContextRelease(context);
return (CGImageRef)[(id)cgImage autorelease];
}
続きはまた後ほど。
| iPhoneデジカメプログラミング | |
![]() |
細谷 日出海
ソフトバンククリエイティブ 2011-03-18 |
関連記事
-
-
iOS Developer Program 更新のため Developer Certificates を更新
この前iOS Developer Programを更新したが、1年経ったので Developer C
-
-
“I think the stainless steel looks beautiful when it wears” from The Perfect Thing
傷が付きやすいと言われている iPhone 7 ジェットブラック。ケースを付けるか迷ったら、下記
-
-
Parse から Heroku, AWSへの移行ガイド
2017年1月28日にParseのサービスが終了するという衝撃的なニュース(Moving On)
-
-
Reject履歴 EverLearn 1.7.0
どうやら Apple Watch対応アプリの審査は厳しいらしいので、Rejectされた履歴を書いてみ
-
-
[iOS SDK] Simulator で Save Screenshot するとクラッシュ
「libswiftFoundation.dylib プラグインの使用中に Simulator が予期
-
-
View-Based ApplicationにUINavigationControllerを追加する方法
(いろいろ間違っていたので 2009/05/13 更新) (さらに 2009/08/08 更新) こ
-
-
自作アプリ おんぷちゃん にランキングモードを追加
かなり前からほそぼそと準備を続けていた、五線譜学習アプリ おんぷちゃんへのランキング挑戦モード追加
-
-
[iPhone 開発本] iOS SDK Hacks の感想など。
iOS SDK Hacksは発売前から話題になっていて、発売日は10/23だが前日に新宿ジュンク堂に
-
-
トレードオフ ケビン・メイニー著
なぜか序文を書いただけのジム・コリンズの名前の方が表示が大きいケビン・メイニーの本。 上質(Qua
-
-
iPhone SDK開発のネタ帳 Observerパターン
Head First デザインパターンでも2番目に紹介されているObserverパターン。使用頻度も
