Копия UIImage заканчивается вращением - PullRequest
1 голос
/ 11 октября 2010

Я пытаюсь скопировать uiimage (в конечном итоге я планирую размывать копию).Прямо сейчас скопированное изображение правильно отображается в симуляторе, но при работе на устройстве поворачивается на 90 градусов.

Я использую следующее для создания acopy:

 CGImageRef cgImage = [sourceImage CGImage];

// Сделатьновое изображение из CG Reference UIImage * copyOfImage = [[UIImage alloc] initWithCGImage: cgImage];

Исходное изображение поступает из UIImagePickerController.То же самое происходит, независимо от того, беру ли я сообщение из библиотеки или с камеры.

Заранее благодарен за любую помощь

Ответы [ 2 ]

0 голосов
/ 06 ноября 2011

Случилось так, что это было сделано недавно, особенно для размытия, я бы не советовал использовать полное изображение.

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

Я не проверял это, потому что это немного другое намерение, чем мой первоначальный проект.

Этот код использует UIImage + Resize для изменения размера.

//Creates an autoreleased representing the current screen view
-(UIImage *)currentBlurredImage:(UIImage *)anImage{

CGImageRef imageRef = CGImageCreateWithImageInRect([anImage CGImage], bounds);
UIImage *coppiedImage = [UIImage imageWithCGImage:imageRef scale:1.0 orientation:anImage.imageOrientation];

coppiedImage = [viewImage resizedImage:CGSizeMake(120, 80) interpolationQuality:kCGInterpolationLow];
coppiedImage = [viewImage blurredCopyUsingGuassFactor:4 andPixelRadius:4];
return coppiedImage ;

}

Размытие было сделано с помощью кода отсюда http://iphonedevelopment.blogspot.com/2010/08/uiimage-blur.html (кредит, где он должен!)Однако я вычистил это и имел дело с кучей памяти и другими проблемами.

http://pastebin.com/MaHvvdim

0 голосов
/ 11 октября 2010

Согласно документации для UIImage, свойство imageOrientation содержит ориентацию для изображения и по умолчанию имеет значение UIImageOrientationUp.Но если изображение имеет какие-либо данные EXIF ​​для ориентации, оно вернет это вместо этого.

imageWithCGImage: (CGImageRef) cgImage и initWithCGImage: (CGImageRef) CGImage (в UIImage) оба по умолчанию будут использовать ориентацию UIImageOrientationUp, что может быть невернымесли изображение / фильм на самом деле было снято, например, в ландшафтном режиме.

Но если вы используете версии выше, это также требует ориентации и передает sourceImage.imageOrientation, оно должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...