ホーム > タグ > 写真アルバム

写真アルバム

iPhoneシミュレーターの写真アルバムに画像を入れる

  1. 適当な画像ファイルをシミュレータにドラッグ&ドロップ
  2. 画像がSafariで開かれるので、画像の上でマウスボタンを長押し→画像を保存

ただしサイズが小さく、画質が悪くなります。開発にあたっては特に問題ないのですが、なんとかなりませんかね?

(追記)「ただしサイズが小さく、画質が悪くなります」と思ったのですが、UIImagePickerControllerでデータを取り出してみると(オリジナル画像よりは縮小されていますが)実際にはそれなりのサイズと画質で保存されていました(おそらく、iTunes経由で転送したのと同じ状態)。iPhoneのこのあたりの処理は謎ですね…。

関連する投稿

UIViewのスクリーンショットの画質を良くしたい

UIViewの中身を画像ファイルとして写真アルバムに保存するには下記のような感じでいけるのですが、これだとどうも画質がいまいちです。

UIViewスクリーンショットをライブラリに保存する方法 - まひるのiPhoneラボ - iPhoneアプリ開発グループ

Jpegの圧縮率は UIImageWriteToSavedPhotosAlbum が勝手に決めてしまっていて、自分で指定することはできません。それならばと自力で処理する方法を探してはみたのですが、写真アルバムにファイルを保存することができません。これは、セキュリティへの配慮により、アプリケーションが読み書きできるのは Application Home 以下のファイルに限られているためです。UIImageWriteToSavedPhotosAlbum はあくまでも例外ということですね。

Application Home 以下でよければ、下記のような感じで最高画質で保存できるのですが……。

NSData *imageData = UIImageJPEGRepresentation(UIGraphicsGetImageFromCurrentImageContext(), 1.0);
 
NSString *filePath = [NSString stringWithFormat:@"%@%@" ,NSHomeDirectory() , @"/Documents/hoge.jpg"];
[imageData writeToFile:filePath atomically:YES];

(追記)NSHomeDirectory()には直接ファイルを書き込めないので、Documentsディレクトリに保存するようサンプルコードを修正しました。それと、ファイルパスの文字列を作るには stringByAppendingPathComponent: などという便利なメソッドがあるのでこちらを使った方が良いようです。

関連する投稿

Home > Tags > 写真アルバム

Search
Feeds
Meta

Return to page top