изменение размера изображения с соответствующим соотношением сторон - PullRequest
0 голосов
/ 05 марта 2012

Я работаю над новым приложением, в котором у меня есть разные размеры изображений. Я пробовал много раз с другим решением, но не мог найти правильное соотношение сторон для изображений. Я хочу отображать изображения с высоким качеством тоже. Есть некоторые изображения с разрешением от 20 * 20 до 3456 * 4608 или оно может быть настолько высоким.

Все изображения будут отображаться без обрезки, но размер экрана нашего приложения составляет 300 * 370 пикселей.

Я следовал по следующим ссылкам:

1: Изменить размер UIImage с соотношением сторон?

2: UIViewContentModeScaleAspectFit

3: масштабировать изображение в кнопке UIB для AspectFit?

4: Изменить размер UIImage с соотношением сторон?

Ответы [ 2 ]

0 голосов
/ 05 марта 2012

- Пожалуйста, добавьте пример кода, иначе трудно найти решение вашей проблемы.

Здесь также найдено решение Как пропорционально масштабировать UIImageView?

imageView.contentMode = UIViewContentModeScaleAspectFit;
0 голосов
/ 05 марта 2012

Код, который я использую для изменения размера изображения до максимума 1000px, выглядит следующим образом:

const int maxPhotoWidthOrHeight = 1000;

- (UIImage*)resizeImageWithImage:(UIImage*)image
{
    CGFloat oldWidth = image.size.width;
    CGFloat oldHeight = image.size.height;
    NSLog(@"Old width %f , Old Height : %f ",oldWidth,oldHeight);

    if (oldHeight > maxPhotoWidthOrHeight || oldWidth > maxPhotoWidthOrHeight) {//resize if necessary
        CGFloat newHeight;
        CGFloat newWidth;
        if (oldHeight > oldWidth ) {
            newHeight = maxPhotoWidthOrHeight;
            newWidth = oldWidth * (newHeight/oldHeight);
        }
        else{
            newWidth = maxPhotoWidthOrHeight;
            newHeight = oldHeight * (newWidth/oldWidth);
        }
        CGSize newSize = CGSizeMake(newWidth, newHeight);
        UIGraphicsBeginImageContext( newSize );
        [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
        UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        NSLog(@"New width %f , New Height : %f ",newImage.size.width,newImage.size.height);

        return newImage;
    }
    else{//do not resize because both edges are less than 1000px
        return image;
    }

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