0

次のようなコードを使用して、現在の画面を写真ライブラリに保存しています。

UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage* result = UIGraphicsGetImageFromCurrentImageContext();     
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(result, nil,nil, nil);

これは機能しますが、このコードのどこにも画像の種類や品質が指定されていなくても、品質は圧縮されたJPGによく似ています(保存されるファイル名は標準のIMG_XXXX.JPG形式です)。品質を管理する方法はありますか?つまり、代わりに非圧縮PNGとして保存することはできますか?

4

1 に答える 1

2

次のようなUIImagePNGRepresentation()方法を使用して、PNGとして保存できます。NSData

....
UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData* data =  UIImagePNGRepresentation ( result );
UIImage* pngImage = [UIImage imageWithData:data];
UIImageWriteToSavedPhotosAlbum(pngImage, nil, nil, nil);

お役に立てれば。

于 2012-06-13T05:50:00.727 に答える