0
寸法を変更してUIImage
のサイズを変更しています。しかし、それは異なる次元を示しています。 iPhone 6では、画面の大きさよりも1.25倍の時間を選択します(937 * 1667)。しかし、私のサイズ変更操作を完了した後は938 * 1251になります。宣言された次元でそれが必要です。iOS UIImage寸法変更が動作しません
私のコードは次のとおりです。
NSData *imageData;
imageData=[[NSData alloc] initWithData:UIImageJPEGRepresentation((image), 1.0)];
CGSize sz;
sz.width=((isIphone4||isIphone5)?320*2.3:iPhone6?750*1.25:414*1.8);
sz.height=((isIphone4||isIphone5)?568*2.3:iPhone6?667*1.25:768*1.8);
if([imageData length]/1024>400)
image=[self resizeImage:image scaledToSize:sz];
//function call
-(UIImage *)resizeImage:(UIImage *)image scaledToSize:(CGSize)targetSize
{
float actualHeight = image.size.height;
float actualWidth = image.size.width;
float maxHeight = targetSize.height;
float maxWidth = targetSize.width;
float imgRatio = actualWidth/actualHeight;
float maxRatio = maxWidth/maxHeight;
float compressionQuality = 0.50;//50 percent compression
if (actualHeight > maxHeight || actualWidth > maxWidth)
{
if(imgRatio < maxRatio)
{
//adjust width according to maxHeight
imgRatio = maxHeight/actualHeight;
actualWidth = imgRatio * actualWidth;
actualHeight = maxHeight;
}
else if(imgRatio > maxRatio)
{
//adjust height according to maxWidth
imgRatio = maxWidth/actualWidth;
actualHeight = imgRatio * actualHeight;
actualWidth = maxWidth;
}
else
{
actualHeight = maxHeight;
actualWidth = maxWidth;
}
}
CGRect rect = CGRectMake(0.0, 0.0, actualWidth, actualHeight);
UIGraphicsBeginImageContext(rect.size);
[image drawInRect:rect];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
NSData *imageData = UIImageJPEGRepresentation(img, compressionQuality);
UIGraphicsEndImageContext();
return [UIImage imageWithData:imageData];
}
正しい次元の解決策になる可能性は?