1

一部の画像で CIHueAdjust などのコア画像フィルターを実行すると、予期せず反時計回りに 90 度回転します。この歪みは、iOS デバイスで縦向きに撮影した画像でのみ発生するようです。

以下は、イメージのインポートと CIHueAdjust フィルターを備えた単純な xcode プロジェクトです: owolf.net/uploads/StackOverflow/HueAdjustProject2.zip

iPhone で撮影した縦向きの画像 (ここにリンクされているものなど) でフィルターを実行すると、結果は以下のスクリーン キャプチャのようになります。

これに対する修正はありますか?? 読んでくれてありがとう。

ここに画像の説明を入力

4

4 に答える 4

2

画像の向きが異なります。フィルターを適用すると、向きが失われます。単純なアフィン変換で向きを補正する必要があります。

于 2012-08-17T17:36:02.583 に答える
2
if ([image imageOrientation] == 3) {
    imageView.transform = CGAffineTransformMakeRotation(M_PI / 2.0);
} else if ([image imageOrientation] == 2) {
    imageView.transform = CGAffineTransformMakeRotation((M_PI / 2.0)*-1);
}  else if ([image imageOrientation] == 1) {
    imageView.transform = CGAffineTransformMakeRotation(M_PI);    
}else {
    //no rotation necessary    
}
于 2012-08-18T07:09:04.807 に答える
1

関数 UIIMage.FromImage を 3 つのパラメータ (CIImage、scale、Orientation = Right) で使用して、画像を元の向きに回転させることができます。コード スニペットは次のとおりです。

var rotatedCIImage = imageEffectFunc (src); //rotatedCIImage = your CIImage after taken effect that has been rotated 90° counter clockwise.

if (rotatedCIImage != null) {
   UIImage result = UIImage.FromImage(rotatedCIImage,1.0f,UIImageOrientation.Right);
   return result;
} else {
   return null;
}
于 2013-01-24T09:38:12.690 に答える