我使用
从网址返回图片 NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:Result]];
我将它存储到谷歌地图标记我希望将其调整为一半大小
答案 0 :(得分:6)
尝试使用以下代码:
UIImage *actualImage = [UIImage imageWithData:imageData];
UIGraphicsBeginImageContext(CGSizeMake(actualImage.size.width/2, actualImage.size.height/2);
[actualImage drawInRect:CGRectMake(0,0,actualImage.size.width/2, actualImage.size.height/2)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *smallData = UIImagePNGRepresentation(newImage);
答案 1 :(得分:1)
要在从URL下载图像后调整图像大小,您可以主要使用两种方法:
在第一种情况下,您应该在内存中创建一个空间,以较小的尺寸重新绘制下载的图像,这是发布的片段的简要说明。
这两个框架可用于OSX和iOS,我的建议是使用NYXImagesKit如果使用第三方库不是问题。它还有一个非常有用的处理图像的方法,一个是以正确的方式从URL下载图像
您正在做的事情可能对用户体验有害,您从URL下载数据的方式会创建一个同步连接,该连接将阻止主线程,直到方法完成。主线程管理大多数UI交互。这并不好,因为假设服务器没有响应并且超时设置为60秒,用户必须等待60秒才能对应用程序进行进一步操作。如果图像太大而连接不良,也会发生同样的情况
要正确下载数据,您应该使用异步方法,上面的库具有您要查找的内容。