下载缩略图而不是整个图像



我有一个显示一些杂志头版的应用程序。这些图像的分辨率很高。如果我只想展示低分辨率的图片,那么下载整个图像是无用的,而且会消耗电池/时间/数据。所以问题是:如何从图像URL中获取缩略图URL,这样我就不需要下载图像了?

使用服务器端进程(PHP、ASP等)创建缩略图,然后从新的URL下载。

我认为Dave是对的,最佳解决方案是修改图像服务器端。然而,听起来你可能无法100%控制传来的图像。这并没有给你留下太多选择来减少数据。。。

为了最大限度地减少设备上的内存使用,你可以将图像缩小到合适的大小,这样你保存在内存中并显示的图像就可以达到它需要的大小

你可以用这样的代码来做到这一点(记得清理你的流):

        FileInputStream fis = new FileInputStream(new File(path));
        final BufferedInputStream is = new BufferedInputStream(fis);
        final Options opt = new BitmapFactory.Options();
        // THIS IS THE IMPORTANT LINE:
        opt.inSampleSize = sampleSize;
        Bitmap img = BitmapFactory.decodeStream(is, null, opt);

您可以在此处阅读:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html以了解如何获得适当的样本量并使用JustDecodeBounds中的

耐心点。。。算术很难。

如果一个图像是交错/渐进下载的,你可以想象只下载一些文件数据并使用它来创建缩略图,但这是一个非常特殊的用例,不太可能得到广泛支持。

否则,如果支持检索特定字节范围的服务器的图像格式有深入的了解,您可以选择性地只下载必要的图像数据来创建缩略图,但这将非常困难。

很可能,虽然你的想法很有趣,而且可能有用,但没有办法做到

根据杂志的数量,你可能会考虑有一个单独的服务器来下载封面图像并准备它们的缩略图。然后,你的移动应用程序可以首先查询该服务器,如果有缩略图可用,请使用它,而不是下载全尺寸图像。

最新更新