2015-03-25 4 views
0

Хотя я установил свой ImageView как aspectFit, кажется, что изображение, созданное с помощью CIImage, всегда будет масштабироваться для заполнения.iOS CIImage растянуть изображение

Простой пример загрузки изображения 2 способами:

// 1. load directly via UIImage 
UIImage *imageByUIImage = [UIImage imageNamed:@"Megan-Fox-Look.jpg"]; 
self.uiImageView.image = imageByUIImage; 

// 2. load via CIImage 
NSString *filePath = 
[[NSBundle mainBundle] pathForResource:@"Megan-Fox-Look" ofType:@"jpg"]; 
CIImage *ciImage = 
[CIImage imageWithContentsOfURL:[NSURL fileURLWithPath:filePath]]; 
UIImage *imageByCIImage = [UIImage imageWithCIImage:ciImage scale:1.f orientation:UIImageOrientationUp]; 
self.ciImageView.image = imageByCIImage; 

В 2 просмотров изображения (UIImageView и ciImageView) имеют такой же атрибут «» aspectFit и теми же ограничениями размера (200х200). Но только (1) правильно отображает изображение, (2) растягивает изображение.

В чем проблема? Спасибо.

Я создаю мой проект по Xcode 6.2

enter image description here

+5

Не беспокойтесь об этом. Она выглядит неплохо в любом случае. – clearlight

+0

Вы пытались изменить свойство image.height изображения после того, как вы создали UIImage? Я понимаю, что это не ответ, но это обходное решение? – clearlight

+0

Попробуйте ограничить высоту вашего изображения. Посмотрите на этот вопрос: http://stackoverflow.com/questions/16135216/ciimage-filter-is-stretching-my-image-vertically – atulkhatri

ответ

1

Попробуйте загрузить с помощью CIImage:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"abcd" ofType:@"png"]; 
CIImage *ciImage = [CIImage imageWithContentsOfURL:[NSURL fileURLWithPath:filePath]]; 
UIImage *imageByCIImage = [UIImage imageWithCIImage:ciImage scale:1.0f orientation:UIImageOrientationUp]; 

UIGraphicsBeginImageContext(imageByCIImage.size); 
[imageByCIImage drawInRect:CGRectMake(0,0,imageByCIImage.size.width,imageByCIImage.size.height)]; 
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 
self.imageview.image = newImage; 
UIGraphicsEndImageContext(); 

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

  • Нет связанных вопросов^_^