可能重复:
What’s the easiest way to resize/optimize an image size with the iPhone SDK?
我想将从相机拍摄的图像的重新分辨率更改为320x320。任何人都可以告诉我该怎么做。
我知道如何从相机拍摄图像。所以请告诉我剩下的(即)改变图像的解决方案。
提前致谢
答案 0 :(得分:2)
在此帖中调用:https://stackoverflow.com/a/613380/1648976
+ (UIImage*)imageWithImage:(UIImage*)image
scaledToSize:(CGSize)newSize;
{
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
就图像的存储而言,与iPhone一起使用的最快图像格式是PNG,因为它对该格式进行了优化。但是,如果要将这些图像存储为JPEG,则可以使用UIImage并执行以下操作:
NSData *dataForJPEGFile = UIImageJPEGRepresentation(theImage, 0.6);
这将创建一个NSData实例,其中包含60%质量设置的JPEG图像的原始字节。然后可以将该NSData实例的内容写入磁盘或缓存在内存中。
这是一个转换,而不是exactely到320 * 320 ...但你可以将0.6转为更低或更高。
如果这不是您想要的,请更准确地告诉我
答案 1 :(得分:0)
1)低通滤波原始图像和
2)抽搐或
3)重新取样
如果原始尺寸为640x320,则足以进行LP滤镜,然后选择其他每个样本。这是假装。
如果原始尺寸是例如480x320,然后必须对这些像素进行LP滤波和插值,这些像素值与原始像素不完全对齐。
LP过滤是至关重要的,因为没有它,例如一个非常高分辨率的棋盘图案将被重新采样为噪音或奇怪的图案,由一种称为“频率混叠”的效果引起。