2012-05-30 4 views
3

Я пишу код для обрезки изображения, но я получаю другую часть изображения, а не в заданном прямоугольнике.Обрезка изображения с использованием неправильной части изображения

CGImageRef cr = CGImageCreateWithImageInRect([imageCrop.image CGImage], rectangle.frame); 
    imageCrop.frame=rectangle.frame; 
    imageCrop.image = [[[UIImage alloc] initWithCGImage:cr] autorelease]; 
    CGImageRelease(cr); 

ответ

0

Если вы получаете другую часть изображения может быть из-за стоимости imageOrientation имущества UIImage вы предоставляете. Учитывайте ориентацию изображения перед обрезкой.

Ориентация изображения влияет на способ отображения данных изображения при рисовании. По умолчанию изображения отображаются в ориентации «вверх». Однако, если изображение связано с метаданными (например, с информацией EXIF), это свойство содержит ориентацию, указанную этими метаданными. Список возможных значений этого свойства см. UIImageOrientation

+0

Какова должна быть ориентация изображения? –

+0

@IdreesAshraf Я обновил свой ответ с дополнительной информацией – voromax

0
// Try using following line of code- 

    CGImageRef cr = CGImageCreateWithImageInRect([imageCrop.image CGImage], rectangle.frame); 
    imageCrop.image =[UIImage imageWithCGImage:croppedCGImage scale:1.0f orientation:self.imageOrientation]; 
    CGImageRelease(cr); 
+0

, снова получив неправильную часть –

Смежные вопросы