获取网上图片压缩显示
来源:互联网 发布:软件特征码是什么 编辑:程序博客网 时间:2024/04/30 07:00
从网上获取图片并显示比较容易,只需要通过http获取输入流,然后解码输入流即可,但是有些图片还是比较大,在解码显示之前需要压缩,
压缩方式都一样,计算设置采样率大小即可;
但是在获取图片宽高的时候会先读取一次图片数据,采用流的话这次已经把数据读走了,所以在后面再真正解码图片的时候始终是null;
解决办法就是将输入流转为字节数组保存下来,对这个数组进行操作,问题得到解决,模块代码如下:
public static Bitmap decodeNetWork(String fileUrl, int width, int height){if(fileUrl == null || !fileUrl.startsWith(Constant.HTTP_TAG))return null;URL url = null;try{url = new URL(fileUrl);} catch (MalformedURLException e){// TODO Auto-generated catch blocke.printStackTrace();} HttpURLConnection conn = null;InputStream inputStream = null;Bitmap bm1 = null;try{conn = (HttpURLConnection) url.openConnection();conn.setDoInput(true); conn.connect(); inputStream = conn.getInputStream(); final BitmapFactory.Options options = new BitmapFactory.Options();/*只加载基础信息,并不真正解码图片*/options.inJustDecodeBounds = true;byte[] data = MyFileUtils.getBytes(inputStream);bm1 = BitmapFactory.decodeByteArray(data, 0, data.length, options);if (options.outWidth < 1 || options.outHeight < 1) {return null;}int[] size = calculateSize(options.outWidth, options.outHeight, width, height);/*计算缩放率*/options.inSampleSize = getSampleSize(options, size[0], size[1]);options.inPreferredConfig = Bitmap.Config.RGB_565;options.inPurgeable = true;options.inInputShareable = true;options.inJustDecodeBounds = false;bm1 = BitmapFactory.decodeByteArray(data, 0, data.length, options);conn.disconnect();} catch (IOException e){// TODO Auto-generated catch blocke.printStackTrace();} catch (OutOfMemoryError e) {}try{if(inputStream != null)inputStream.close();} catch (IOException e){// TODO Auto-generated catch blocke.printStackTrace();}return bm1;}
0 0
- 获取网上图片压缩显示
- swing获取网络图片,并压缩显示
- android获取网上图片
- 获取网上图片
- PHP图片压缩显示
- 如何获得并显示网上图片
- 将网上图片显示到 View 上
- 从网上读取图片在本地显示
- 手机显示图片否则网上下载
- ImageView显示本地和网上的图片
- XUtils框架之显示网上图片
- C# PictureBox控件 显示本地图片 显示网上图片
- Python获取网上图片的方法
- 使用HttpURLConnection从网上获取一张图片
- bitmap简单的从网上获取图片
- 文章标题 如何从网上获取图片
- 如何免费从网上获取全景图片
- 网上获取图片,展现在ListView上,
- linux配置网卡文件
- Hibernate关系注解映射
- OnPaint()函数的作用原理
- MFC笔记 启动其他外部exe程序实现
- 发现csdn博客显示不正常
- 获取网上图片压缩显示
- 怎么判断应用运行在前台还是后台?
- IOS 自定义手势方向
- 李云的25条职场发展原则
- Yahoo!数据中心用户超8亿运维仅百人
- 《Machine Learning in Action》 读书笔记之五:AdaBoost Classification
- 发布MVC 到IIS6.0 碰到的问题
- Ubuntu亲自手动编译Openwrt (DreamBox): for njit....ipk
- 基于扩展INT 13H的光驱引导程序设计