我在模拟器中使用Safari的“持有+保存图片”选项存储了一些图片。当我从库中选择一个图像时,我必须将其转换为JPEG或PNG,以便将其上传到服务器。问题是原始图像的大小约为200 KB,但转换为PNG后的图像约为2MB。我使用UIImagePNGRepresentation将UIImage对象转换为NSData,然后发布图像。
UIImageJPEGRepresentation和UIImagePNGRepresentation有什么区别?应该使用哪一个(推荐)?发布于 2009-01-30 11:03:57
我猜原始图像是以JPEG格式存储的。
PNG是设计用来存储诸如屏幕截图和线条绘制之类的东西。它不是为存储照片之类的东西而设计的。
这可以归结为所使用的压缩类型,PNG使用无损压缩,这样图像将与原始图像完全相同。JPEG采用有损压缩,得到的图像近似于原始图像。
如果您采取有损JPEG,然后将其保存为一个PNG,那么它的大小将增加,通常是大量的,正如您已经看到的。
解决你的问题的办法是在上传图片之前不要对它们做任何事情。他们将已经是PNG,GIF或JPEG图像。这就是你应该上传的东西。
iPhone相机保存的图像格式为JPEG。
听起来,您可能需要对PNG和JPEG进行一些一般性的阅读。
发布于 2015-01-03 18:45:18
关于第三点,可以在图像选择器委托方法中确定从库加载的图像类型,如下所示:
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info {
// Get the image reference URL
NSURL *referenceURL = [info objectForKey:UIImagePickerControllerReferenceURL];
// The path extension contains the image type: JPG, PNG, GIF, etc.
NSString *originalImageType = referenceURL.pathExtension;
}https://stackoverflow.com/questions/495096
复制相似问题