2013-05-25 5 views
-2

Я создал UIImageView, который содержит изображение с высоким разрешением. Проблема в том, что разрешение этого изображения слишком велико, чтобы вставить изображение в изображение. Размер изображения составляет 92 х 91 (поэтому он мал). Он содержит UIImage, разрешение которого слишком велико, поэтому выглядит в UIImageView уродливо. Итак, как я могу уменьшить разрешение этого UIImage?Уменьшить разрешение UIImage/UIImageView

Мой код UIImageView:

UIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:pngFilePath]]; 
    myImageView.frame = CGRectMake(212.0, 27, 92,91); 
+0

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

ответ

2

взглянуть на эту

https://stackoverflow.com/a/2658801

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

Добавить метод в код и вызвать как это

UIImage *myImage =[UIImage imageWithContentsOfFile:pngFilePath]; 
UIImage *newImage =[UIImage imageWithImage:myImage scaledToSize:CGSizeMake(92,91)]; 
+0

Как я могу реализовать этот метод класса? – user2420219

+0

найти его в обновленном ответе – George

0

попробовать с этим

 myImageView.contentMode = UIViewContentModeScaleToFill; 
+0

Как это вообще ответит на вопрос? – Rambatino

0

Вы должны сократить изображение, которое позволит уменьшить разрешение, сделать его легче хранить. Я на самом деле написал класс (построенный на некоторых материалах из SO), который делает именно это. Это на моем GitHub, посмотрите:

https://github.com/pavlovonline/UIImageResizer

основной метод

-(UIImage*)resizeImage:(UIImage*)image toSize:(CGFloat)size 

так вы даете этот метод размер, на который вы хотите уменьшить размеры изображения. Если высота больше ширины, она автоматически вычисляет середину и дает вам идеально центрированный квадрат. То же, что ширина больше высоты. Если вам требуется изображение, которое не является квадратным, сделайте свои собственные настройки.

, чтобы вы вернули уменьшенный UIImage, который затем можно вставить в свой UIImageView. Сохраните некоторую память.

1

Вы можете изменить размер изображения, используя этот метод, который возвращает измененное изображение:

-(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize { 
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); 
    // Here pass new size you need 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

Надеюсь, он вам поможет.

+0

как реализовать этот код с помощью моего UIImage? – user2420219

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