質問: fileurl.URLByAppendingPathComponent(filename).path! // 入力欄の内容をファイルへ書き込む imageData.writeToFile(filePath, atomically: true) } } ``` やはりカメラロールに保存する場合、ファイル名は指定なしでjpg形式となるのでしょうか? この場合、解像度だけでも指定出来ればと思うのですが、どのように指定するのでしょうか? 以上、よろしくお願いします。
回答: > > やはりカメラロールに保存する場合、ファイル名は指定なしでjpg形式となるのでしょうか? > > > 以下のように、一旦UIImagePNGRepresentationでNSDataに変換したものを再度UIImageに戻し、 それをUIImageWriteToSavedPhotosAlbumで保存すると、PNG形式で保存されます。 ``` let imageData = UIImagePNGRepresentation(image) let saveImage = UIImage(data:imageData!) UIImageWriteToSavedPhotosAlbum(saveImage!, nil, nil, nil) ``` > > この場合、解像度だけでも指定出来ればと思うのですが、どのように指定するのでしょうか? > > > UIImagePNGRepresentationやUIImageJPEGRepresentationではDPIは指定できません。 おそらくAppleがiPhone用に提供しているAPIではサポートしてないんじゃないかと思います。 libjpegとかlibpngとかのOSSライブラリをアプリに組み込んでUIImageを各画像フォーマット形式の NSDataに変換できるなら、もしかしたらDPIも埋め込めるかもしれません。 (やったことはありませんし、かなりのスキルが必要だと思います。) > > ・ファイルはビットマップ形式で保存したい > > > このビットマップ形式って、Windowsのbmp形式のことですよね? たぶん、AppleがiPhone用に提供しているAPIではサポートしてないと思います。 OSSライブラリを探すか、自分でUIImageの画像イメージをbmp形式のNSDataに変換できればおそらくbmp形式の保存も可能だと思います。そもそもbmp形式を使う目的がわかっていませんが、普通はpng形式の方が扱いやすいと思います。 > > ・ファイル名を「APP_YYYYMMDD」のように指定したい > > > 写真ライブラリ(カメラロール内)の写真のファイル名は、写真ライブラリが管理するのでアプリがそれを指定して変更することはできません。 最終的にメールしたいんだったら、一旦アプリ内に保存して、アプリ内からMFMailComposeViewControllerで 直接メールしてしまう方が、たぶんカメラロールを使うより自由にやりやすいと思います。