在iOS应用程序中显示10000x8000像素的图像

在iOS应用程序中显示10000x8000像素的图像,ios,uiimageview,Ios,Uiimageview,我正在尝试在我的iOS应用程序中显示图像。图像的分辨率为10000x8000,远高于iPhone的屏幕分辨率,如果我将其添加到UIImageView,该应用程序将收到内存警告并导致崩溃。有人能给我一个如何处理的建议吗?非常感谢。这是来自苹果的示例应用程序,它显示大尺寸图像,它使用TileImageView缩放图像并根据当前的缩放重新使用瓷砖 或者,如果你只是想缩小图像的比例,你可以使用这个 + (UIImage*)imageWithImage:(UIImage*)image

我正在尝试在我的iOS应用程序中显示图像。图像的分辨率为10000x8000,远高于iPhone的屏幕分辨率,如果我将其添加到UIImageView,该应用程序将收到内存警告并导致崩溃。有人能给我一个如何处理的建议吗?非常感谢。

这是来自苹果的示例应用程序,它显示大尺寸图像,它使用TileImageView缩放图像并根据当前的缩放重新使用瓷砖

或者,如果你只是想缩小图像的比例,你可以使用这个

+ (UIImage*)imageWithImage:(UIImage*)image 
               scaledToSize:(CGSize)newSize;
{
   UIGraphicsBeginImageContext( newSize );
   [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
   UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();

   return newImage;
}

这是来自苹果的示例应用程序,它显示大尺寸图像,它使用TileImageView缩放图像并根据当前的缩放重新使用瓷砖

或者,如果你只是想缩小图像的比例,你可以使用这个

+ (UIImage*)imageWithImage:(UIImage*)image 
               scaledToSize:(CGSize)newSize;
{
   UIGraphicsBeginImageContext( newSize );
   [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
   UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();

   return newImage;
}
这只是旁注,不是答案

@AmitTandel的回答肯定会对你有所帮助但是

记住,您不应该总是请求此高分辨率图像,而是应该实现一个逻辑,在使用@Amit的答案将此高分辨率图像缩小后,将其存储到某个位置。然后在重新请求相同的图像url时,您应该首先查找存储的目录,如果该图像不存在,那么您可以请求一个图像

但是,是的,我并不是建议你按照我的回答去做,因为你需要下载这个非常高分辨率的图像(实际上没有任何用处),所以如果你是从你的服务器上得到这个图像,你可以要求他们给你缩小的图像尺寸。我听说,他们可以将图像缩小到不同的大小,以帮助应用程序在不同的位置显示特定的图像。

这只是旁注,不是答案

@AmitTandel的回答肯定会对你有所帮助但是

记住,您不应该总是请求此高分辨率图像,而是应该实现一个逻辑,在使用@Amit的答案将此高分辨率图像缩小后,将其存储到某个位置。然后在重新请求相同的图像url时,您应该首先查找存储的目录,如果该图像不存在,那么您可以请求一个图像


但是,是的,我并不是建议你按照我的回答去做,因为你需要下载这个非常高分辨率的图像(实际上没有任何用处),所以如果你是从你的服务器上得到这个图像,你可以要求他们给你缩小的图像尺寸。我听说,他们可以将图像缩小到不同的大小,以帮助应用程序在不同的位置显示特定的图像。

你必须实施某种平铺,并将图像分割成更小的部分,就像谷歌地图不一次加载整个地图一样,这可能需要大量的工作。这是唯一的方法吗?@Fonixi不知道,但我想Amit Tandel有一个解决方案。你必须实施某种平铺,并将图像分割成更小的部分,就像谷歌地图不会一次加载整个地图一样。这可能需要很多工作。这是唯一的办法吗?@Fonixi不知道,但我想Amit Tandel为你找到了一个解决办法。非常感谢你。你真的帮了大忙@Amit Tandelt非常感谢你。你真的帮了大忙@Amit Tandelt这张大图在本地包中。PM希望放大图像以更清晰地看到像素,我必须以真实分辨率显示一张大图片……您有其他设备来满足这一有线要求吗?:)您可以尝试添加降级图像,然后与您的PM重新检查以获得最终保证。我相信,这也适用于缩小尺寸的图像。不幸的是,PM之前拒绝了这一建议:(大图片在本地捆绑包中。PM希望放大图像以更清晰地看到像素,我必须以真实分辨率显示大图片…您是否有其他设备来满足此有线要求?:)您可以尝试添加低级图像,然后与PM重新检查以获得最终保证。我相信,这也适用于缩小尺寸的图像。不幸的是,PM之前拒绝了这一建议:(