изменить размер изображения с соотношением сторон

Я пытаюсь изменить размер изображения с соотношением сторон, как это сделано в следующих ссылках

Изменение размера изображений пользовательского интерфейса, извлеченных с камеры, также ВРАЩАЕТСЯ изображение UI?

https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more < / а>

Это отлично работает на симуляторе. Но на моем iPhone-4 я получаю черный блок в правой части изображения. (4-я часть изображения черная). Это происходит только с изображениями, у которых есть правильная ориентация изображения ... пока. ImageOrientation up не вызывает никаких проблем.

Почему-то у меня такое чувство, что проблема возникает из-за CGBitmapContextCreate. Я уже удалил CGImageGetBytesPerRow, потому что это не работает, как я читал. На данный момент у меня есть такой код:

if (sourceImage.imageOrientation == UIImageOrientationUp || sourceImage.imageOrientation == UIImageOrientationDown) {
bitmap = CGBitmapContextCreate(NULL, targetWidth, targetHeight, 8, 4*targetWidth, colorSpaceInfo, bitmapInfo);
} else {
bitmap = CGBitmapContextCreate(NULL, targetHeight, targetWidth, 8, 4*targetHeight, colorSpaceInfo, bitmapInfo);
}

В чем могут быть эти проблемы?


person ErikS    schedule 27.06.2011    source источник


Ответы (1)


Я бы использовал файлы категорий на этом сайте, чтобы изменить размер UIImages:

http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/

person hundreth    schedule 27.06.2011
comment
Спасибо, это очень хорошо работает. Также спасибо за удивительно быстрый ответ. - person ErikS; 28.06.2011