Наконец, увидев многие решения, я получил следующее решение и сделал код в соответствии с этим.
Мы можем получить изображения, подобные следующим.
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];