上传到服务器之前如何在iOS上压缩/调整图像大小?

我当前正在使用Imgur在iOS上使用以下代码将图像上传到服务器:


NSData* imageData = UIImagePNGRepresentation(image);

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString* fullPathToFile = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"SBTempImage.png"];

[imageData writeToFile:fullPathToFile atomically:NO];


[uploadRequest setFile:fullPathToFile forKey:@"image"];

当我在模拟器中运行并从模拟器的图片库上传文件时,该代码可以正常工作,因为我处于快速以太网连接中。但是,当选择使用iPhone拍摄的图像时,相同的代码在iPhone上超时。因此,我通过从网络上保存一个小图像并尝试上传该图像来进行了尝试。


这使我相信iPhone拍摄的大图像正在通过速度较慢的3G网络超时。有没有办法在发送之前对iPhone中的图像进行压缩/调整大小?


慕侠2389804
浏览 760回答 3
3回答

红颜莎娜

您应该可以通过执行以下操作来制作较小的图像UIImage *small = [UIImage imageWithCGImage:original.CGImage scale:0.25 orientation:original.imageOrientation];(对于四分之一大小的图像),然后将较小的图像转换为PNG或所需的任何格式。

慕哥9229398

该代码段将调整图像的大小:UIGraphicsBeginImageContext(newSize);[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();变量newSize是a CGSize,可以这样定义:CGSize newSize = CGSizeMake(100.0f, 100.0f);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS