4

メソッドを使用してUIImageから正しく回転させようとしています。さまざまなデバイスの向きで撮影したテスト写真がいくつかあります。写真アプリに写真が正しく表示されます。のドキュメントには次のように書かれています:ALAssetRepresentationfullScreenImagefullScreenImage

iOS 5 以降では、このメソッドは完全にトリミング、回転、および調整された画像を返します。ユーザーが写真や画像ピッカーで見るのとまったく同じです。

から正しく回転UIImageしたオブジェクトを作成するには、または CGImageを使用 して、 およびの値を渡します。imageWithCGImage:scale:orientation:initWithCGImage:scale:orientation:orientationscale

ドキュメントを考えると、私のコードは次のようになります。

ALAssetRepresentation *rep = [asset defaultRepresentation];
UIImage *img = [UIImage
    imageWithCGImage:[rep fullScreenImage]
    scale:[rep scale]
    orientation:[rep orientation]];

しかし、結果UIImageの の回転は間違っています。に置き換える[rep orientation]UIImageOrientationUp、すべてのテスト写真で画像は問題ありません。ハックのように感じるので、明らかに私はこの「解決策」に固執することをためらっています。私は何を間違っていますか?

4

1 に答える 1

11
ALAssetRepresentation *rep = [asset defaultRepresentation];
UIImage *img = [UIImage
    imageWithCGImage:[rep fullScreenImage]
    scale:[rep scale]
    orientation:UIImageOrientationUp];

iOS 5 では全画面画像が既に回転しているため、正しいです (したがって、常に「上」です)。iOS 4 では動作が異なります。詳細な説明については、ALAsset の写真で方向が正しく動作しないを参照してください。

于 2012-06-06T08:07:07.207 に答える