Итак, здесь, где я сделал это до сих пор. Я использую 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() или я что-то здесь не вижу?