`
龙哥IT
  • 浏览: 253911 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

通过图片地址获取图片,优化

 
阅读更多

 // Get the source image's dimensions
  BitmapFactory.Options options = new BitmapFactory.Options();
  // This does not download the actual image, just downloads headers.
  options.inJustDecodeBounds = true; 
  BitmapFactory.decodeFile(IMAGE_FILE_URL, options);
  // The actual width of the image.
  int srcWidth = options.outWidth;  
  // The actual height of the image.
  int srcHeight = options.outHeight;  

  // Only scale if the source is bigger than the width of the destination view.
  if(desiredWidth > srcWidth)
    desiredWidth = srcWidth;

  // Calculate the correct inSampleSize/scale value. This helps reduce memory use. It should be a power of 2.
  int inSampleSize = 1;
  while(srcWidth / 2 > desiredWidth){
    srcWidth /= 2;
    srcHeight /= 2;
    inSampleSize *= 2;
  }

  float desiredScale = (float) desiredWidth / srcWidth;

  // Decode with inSampleSize
  options.inJustDecodeBounds = false;
  options.inDither = false;
  options.inSampleSize = inSampleSize;
  options.inScaled = false;
  // Ensures the image stays as a 32-bit ARGB_8888 image.
  // This preserves image quality.
  options.inPreferredConfig = Bitmap.Config.ARGB_8888;  
                                                	
  Bitmap sampledSrcBitmap = BitmapFactory.decodeFile(IMAGE_FILE_URL, options);

  // Resize
  Matrix matrix = new Matrix();
  matrix.postScale(desiredScale, desiredScale);
  Bitmap scaledBitmap = Bitmap.createBitmap(sampledSrcBitmap, 0, 0,
      sampledSrcBitmap.getWidth(), sampledSrcBitmap.getHeight(), matrix, true);
  sampledSrcBitmap = null;

  // Save
  FileOutputStream out = new FileOutputStream(LOCAL_PATH_TO_STORE_IMAGE);
  scaledBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
  scaledBitmap = null;

 

分享到:
评论

相关推荐

    Android--从系统Camera和Gallery获取图片优化

    本文将详细探讨如何优化从系统Camera和Gallery获取图片的过程,以提高应用的性能和用户体验。 首先,我们需要理解Android中的Content Resolver是如何工作的。Content Resolver是Android系统中的一个接口,它用于与...

    通过URL地址获取网页生成jpg图片

    本教程将详细介绍如何通过URL地址获取网页并生成jpg图片,同时解决32位和64位运行环境下的兼容性问题。我们将主要使用Java语言来实现这一功能,因为它具有丰富的库和跨平台的特性。 首先,我们需要一个能够处理网络...

    listview获取网络图片缓存优化

    "listview获取网络图片缓存优化" 主要关注如何在ListView中高效地加载和缓存网络图片,以提升用户体验。 首先,我们需要理解ListView的工作原理。ListView通过复用ViewHolder中的视图来提高滚动性能。当一个item...

    Android通过网络URL获取图片并显示

    使用OkHttp,我们创建一个网络请求来获取图片的二进制数据: ```java OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("http://example.com/image.jpg") .build(); ...

    通过视频地址获取视频缩略图

    本教程将深入探讨如何仅通过视频地址来获取视频的缩略图,这是一个高效且实用的技术。以下是对这个主题的详细阐述: 1. **视频缩略图的概念**:视频缩略图,也称为预览图像或帧截图,是视频内容的一个静态表示,...

    webservice 获取图片

    在本场景中,我们关注的是如何通过Web服务来获取图片。这种技术常常用于跨平台应用集成,例如移动应用从服务器获取图片资源,或者Web应用从远程服务器获取并展示图像。 1. **Web服务原理**: Web服务基于SOAP...

    Vb获取图片尺寸大小

    接下来,我们可以通过以下步骤获取图片的尺寸和彩色位数: 1. **加载图片**:使用`Image.FromFile`方法从文件路径加载图片。例如: ```vb Dim imagePath As String = "C:\path\to\image.jpg" ' 替换为实际图片...

    安卓listview相关相关-listview获取网络图片缓存优化.zip

    本资料包“安卓listview相关相关-listview获取网络图片缓存优化.zip”主要探讨的就是如何在ListView中高效地加载和缓存网络图片。 首先,我们需要理解ListView的工作机制。ListView通过复用convertView(即...

    volley获取图片并缓存

    首先,它会发起HTTP请求获取图片,然后将返回的图片数据缓存到内存和磁盘。下次请求相同的图片时,Volley会直接从缓存中读取,避免了网络请求的延迟。 4. **自定义缓存策略**: 虽然Volley默认提供了缓存机制,但...

    swift-GetImageSizeWithURL: 根据图片地址获取图片宽高尺寸测试demo

    这个"swift-GetImageSizeWithURL: 根据图片地址获取图片宽高尺寸测试demo"是一个示例项目,用于演示如何在实际应用中实现这一功能。通过分析这个项目的源代码,我们可以学习到以下关键知识点: 1. **URLSession**: ...

    JQ 获取图片真实宽高

    当图片数据完全加载完毕后,我们可以通过监听这个事件来获取图片的尺寸。 - jQuery提供了`$(selector).load()`方法来绑定`load`事件。例如:`$('img').load(function() {...})`。 2. **获取图片尺寸**: - 图片的...

    websocket从服务端获取图片

    在本例中,我们将探讨如何使用WebSocket从服务端获取图片并在HTML5浏览器上显示,服务端采用Java注解方式实现,并在Tomcat8应用服务器上进行调试。 1. WebSocket基础: WebSocket协议是HTTP/1.1的扩展,通过握手...

    android由图片名称获取图片的ID.rar

    请注意,由于提供的压缩包文件"android 由图片名称获取图片的ID"无法直接运行或查看具体代码,以下内容将基于一般的Android编程实践来解释。 首先,理解Android中的资源管理机制是至关重要的。在Android应用中,...

    上传图片获取图片信息(兼容IE和火狐)

    总结,实现上传图片获取图片信息的跨浏览器兼容方案,需要结合`FileReader`、`Image`对象以及针对旧版IE的ActiveXObject,同时注意事件触发的时机和浏览器的特性差异。这样,无论用户使用的是IE、Firefox还是其他...

    小巧好用的图片优化工具

    在IT领域,图片优化工具是不可或缺的一部分,尤其对于网页设计师、摄影师和数字艺术家而言,它们能够帮助减小图片文件大小,提高网站加载速度,同时保持图片质量。标题提到的“小巧好用的图片优化工具”显然是一个...

    从图库获取图片

    在Android应用开发中,"从图库获取图片"是一个常见的需求,主要用于用户选择个人照片或者图片资源进行上传、编辑或展示。这个过程涉及到多个知识点,包括权限管理、Intent的使用、图片加载库以及图片处理技术。 ...

    C#获取图片并保存到本地

    根据提供的文件信息,本文将详细解释如何在C#中实现从网络上获取图片并将其保存到本地的方法。此过程涉及到了HTTP请求、流处理、文件操作等关键概念和技术。 ### 标题:“C#获取图片并保存到本地” 标题直接说明了...

    大量图片优化

    - 在解码时,设置`BitmapFactory.Options`的`inJustDecodeBounds`为`true`,先获取图片的原始尺寸,然后计算合适的`inSampleSize`,使图片按比例缩小。`inSampleSize`应为2的幂,例如2、4、8等,这样可以有效地降低...

    从网络获取图片按图片原大小显示

    使用 ` BitmapFactory.Options` 类可以控制解码过程,通过设置 `inJustDecodeBounds` 为true,先获取图片的原始尺寸,然后根据需求调整 `inSampleSize`,确保解码后的Bitmap与原图尺寸一致。 4. **内存管理**:原图...

    android 获取网络图片

    总结来说,Android中获取网络图片涉及到网络请求、Bitmap解码、内存管理和用户体验优化。使用现代库如Glide和Picasso可以简化这个过程,同时提供更好的性能和功能。在实际开发中,应根据项目需求选择最适合的方法。

Global site tag (gtag.js) - Google Analytics