iOSシミュレータに画像を取込む

iOSデバイスも他のモバイルデバイスと同様、カメラで撮影した又はギャラリから選択した画像をアプリケーションで扱うことができる。(というか、iOSデバイスのが)

カメラ又はライブラリから画像を取込むための典型的なコード
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
{
    [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
} else {
    [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
}

//UIImagePickerControllerDelegateデリゲートに応答する
[imagePicker setDelegate:self];

[self presentModalViewController:imagePicker animated:YES];

[imagePicker release];

〜
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
   UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
   //イメージを扱うコードを記述

}

これで良いのだが、私のように実機が無い場合iOSシミュレータを使って実行してもカメラデバイスはシミュレータではサポートされていないので使えないし、カメラロールを覗いても何も画像が入っていないので選択のしようが無い。(当たり前だ)

せめて画像を選択することでアプリケーションのテストをすることはできないのだろうか、と思うのは私だけではないようで、既に先達の方々に試されている方法がある。

iOSシミュレータに画像を取込む方法

1. 取込みたい画像をiOSシミュレータにドラッグする


2. WebブラウザのモバイルSafariが起動するので、画像をロングタップする


3. 画像を保存する


4. 画像は"~/Library/Application Support/iPhone Simulator/[iOSバージョン]/Media/DCIM/100APPLE"に保存される※


これだけである。

アプリケーションで試してみよう。

サンプルは恒例のiOSプログラミング 第2版の13章で作られるものだ。
ツールバーからカメラのボタンをタップすると、アルバムから先ほど取込んだ画像を選択、表示することができる。

この辺、実に良くできていると感心しきりだ。


追記: いい加減にiPhone/iPod Touch/iPadの実機買えってことだよね。


※うまく表示されない場合、データベースを一度リセットする必要があるらしい。