これが私がこれまでに成し遂げたところです。カメラからキャプチャしたUIImageを使用しており、横向きのときに中央の正方形をトリミングできます。何らかの理由で、これは期待どおりにポートレートモードに変換されません。参考までに、コードとログを投稿します。
コード:
CGRect squareRect = CGRectMake(offsetX, offsetY, newWidth, newHeight);
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], squareRect);
image = [UIImage imageWithCGImage:imageRef scale:1 orientation:image.imageOrientation];
縦向きの結果(正方形ではない):
original image size: {1536, 2048}, with orientation: 3
squareRect: {{0, 256}, {1536, 1536}}
new image size: {1280, 1536}, with orientation: 3 <--- not expected
風景の結果(正方形):
original image size: {2048, 1536}, with orientation: 1
squareRect: {{256, 0}, {1536, 1536}}
new image size: {1536, 1536}, with orientation: 1
これはCGImageCreateWithImageInRect()内のバグですか、それともここで何かが足りませんか?