【发布时间】:2012-10-26 04:41:24
【问题描述】:
可能重复:
What’s the easiest way to resize/optimize an image size with the iPhone SDK?
我想将相机拍摄的图像分辨率更改为 320x320。谁能告诉我该怎么做。
我知道如何从相机拍摄图像。所以请告诉我剩下的(即)改变图像的分辨率。
提前致谢
【问题讨论】:
标签: ios xcode ipad uiimagepickercontroller
可能重复:
What’s the easiest way to resize/optimize an image size with the iPhone SDK?
我想将相机拍摄的图像分辨率更改为 320x320。谁能告诉我该怎么做。
我知道如何从相机拍摄图像。所以请告诉我剩下的(即)改变图像的分辨率。
提前致谢
【问题讨论】:
标签: ios xcode ipad uiimagepickercontroller
这在这篇文章中被称为: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 实例的内容写入磁盘或缓存在内存中。
这会进行转换,不完全是 320*320.. 但您可以将 0.6 调整为更低或更高。
如果这不是你想要的,请更准确地告诉我
【讨论】:
1) 对原始图像进行低通滤波和
2) 抽取或
3) 重采样
如果原始尺寸为 640x320,则进行 LP 过滤然后选择每隔一个样本就足够了。那是抽取。
如果原始尺寸是例如480x320,然后仍然必须对那些与原始像素不完全对齐的像素进行 LP 过滤和插值。
LP 过滤至关重要,因为没有它,例如由称为“频率混叠”的效应引起的非常高分辨率的棋盘图案将被重新采样为噪声或奇怪的图案。
【讨论】: