UIImage маленький + средний + большой как яблоко Mail - PullRequest
4 голосов
/ 02 апреля 2012

Есть ли справочное руководство для получения размера изображения в маленьких или средних условиях.

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

Это так же, как когда мы прикрепляем изображение в Почте, оно спрашивает, маленькое, среднее, большое ..

Плз не предоставлять это как я уже прошел это ..

Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 19 апреля 2012

Наконец, увидев многие решения, я получил следующее решение и сделал код в соответствии с этим.

Мы можем получить изображения, подобные следующим.

Small = 320 pixels on longest edge JPEG
Medium = 640 pixels on longest edge JPEG
Large =  1296 pixels on longest edge JPEG

Где typeOfImage = 0,1,2маленький, средний и большой соответственно.

-(CGSize)getImageWithRespectiveSize:(UIImage *)pImage withType:(NSInteger)typeOfImg
{
    CGSize pSize;
    if(typeOfImg == 0)
        pSize = [self getCGSizesOfImages:320 andImage:pImage];
    else if(typeOfImg == 1)
        pSize = [self getCGSizesOfImages:640 andImage:pImage];
    else if(typeOfImg == 2)
        pSize = [self getCGSizesOfImages:1296 andImage:pImage];
    else 
        pSize = CGSizeMake(pImage.size.width, pImage.size.height);

    return pSize;
}

-(CGSize)getCGSizesOfImages:(NSInteger)pIntPixels andImage:(UIImage *)pImage
{
    CGSize pSize;
    if(pImage.size.width > pImage.size.height)
    {
        CGFloat tmp = pImage.size.height/pImage.size.width*pIntPixels;
        pSize = CGSizeMake(pIntPixels, tmp);
    }
    else if(pImage.size.width < pImage.size.height)
    {
        CGFloat tmp = pImage.size.width/pImage.size.height*pIntPixels;
        pSize =  CGSizeMake(tmp, pIntPixels);       
    }   
    else
    {
        CGFloat tmp = pImage.size.height/pImage.size.width*pIntPixels;
        pSize =  CGSizeMake(tmp, pIntPixels);       
    }
    return pSize;
}

и вызов функции как этот

CGSize size = [self getImageWithRespectiveSize:imgOriginal withType:0];
1 голос
/ 02 апреля 2012

Вы можете использовать каркас imageIO, очень легко настроить метод для изменения размера изображения.Вокруг много примеров, вот один из первых хитов на Google, он также объясняет классический способ с основной графикой. uiimage scaling
[EDIT]
Если вы хотите узнать, как получить размер в байтах, вы можете взглянуть на этот пример кода от Apple Уменьшение большого изображения

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