Home > iPhone SDK / Cocoa / Objective-C > UIViewのスクリーンショットの画質を良くしたい

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: などという便利なメソッドがあるのでこちらを使った方が良いようです。

関連する投稿

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://iphone-dev.ensites.net/archives/232/trackback
Listed below are links to weblogs that reference
UIViewのスクリーンショットの画質を良くしたい from iPhoneアプリ開発ブログ

Home > iPhone SDK / Cocoa / Objective-C > UIViewのスクリーンショットの画質を良くしたい

Search
Feeds
Meta

Return to page top