5

私のアプリではimage、カメラを使用UIImagePickerしてトリミングするよりもキャプチャしています。しかし問題は、ランドスケープモードでカメラから画像をキャプチャすると、ポートレートモードでトリミングするときにブラックボックスが画像に表示されることです。

画像は横向きモードでキャプチャされます -

ここに画像の説明を入力

その画像を使用すると、下の画像に示すように、画像の上部と下部にブラックボックスが表示されます-

ここに画像の説明を入力

imageしかし、その黒い部分を削除して、領域全体 をカバーしたいと考えています。

これどうやってするの ?

4

2 に答える 2

3

で画像をトリミングしています か、CGImageCreateWithImageInRect([image CGImage], rect); それともトリミングをどのように行っているかを正確に共有できますか?

横向きモードで画像を取得する場合UIImagePickerControllerは、UIImage の方向プロパティを確認する必要があります。すなわち[image orientation];

方向の値が の場合UIInterfaceOrientationLandscapeLeft|UIInterfaceOrientationLandscapeRight、四角形の幅と高さを入れ替えます。そして、それをトリミングします。

于 2012-07-11T18:26:14.680 に答える
0
-(UIImage *)crop:(CGRect)rect Image:(UIImage *)originalImage ImageOrientation:(UIImageOrientation)imageOrientation
{

    CGImageRef imageRef = CGImageCreateWithImageInRect(originalImage.CGImage, rect);

    UIImage *result = [UIImage imageWithCGImage:imageRef scale:1.0f orientation:imageOrientation];

    CGImageRelease(imageRef);

    return result;
}
于 2012-07-18T06:22:18.367 に答える