1. package com.loaderman.customviewdemo;
  2.  
  3. import android.app.Activity;
  4. import android.graphics.Bitmap;
  5. import android.graphics.BitmapFactory;
  6. import android.os.Bundle;
  7. import android.os.Environment;
  8. import android.widget.ImageView;
  9.  
  10. import java.io.ByteArrayOutputStream;
  11. import java.io.File;
  12. import java.io.FileNotFoundException;
  13. import java.io.FileOutputStream;
  14. import java.io.IOException;
  15.  
  16. public class MainActivity extends Activity {
  17.  
  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.activity_main);
  22.  
  23. ImageView iv_1 = (ImageView) findViewById(R.id.img1);
  24. ImageView iv_2 = (ImageView) findViewById(R.id.img2);
  25.  
  26. Bitmap bmp = BitmapFactory.decodeResource(this.getResources(), R.drawable.cat);
  27. iv_1.setImageBitmap(bmp);
  28.  
  29. //压缩图像后,显示
  30. ByteArrayOutputStream bos = new ByteArrayOutputStream();
  31. bmp.compress(Bitmap.CompressFormat.JPEG, 1, bos);
  32. byte[] bytes = bos.toByteArray();
  33. Bitmap bmp1 = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
  34. iv_2.setImageBitmap(bmp1);
  35.  
  36. ImageView iv_3 = (ImageView) findViewById(R.id.img3);
  37. ImageView iv_4 = (ImageView) findViewById(R.id.img4);
  38.  
  39. ByteArrayOutputStream bos3 = new ByteArrayOutputStream();
  40. bmp.compress(Bitmap.CompressFormat.PNG, 1, bos3);
  41.  
  42. byte[] bytes3 = bos3.toByteArray();
  43. Bitmap bmp3 = BitmapFactory.decodeByteArray(bytes3, 0, bytes3.length);
  44.  
  45. iv_3.setImageBitmap(bmp3);
  46.  
  47. ByteArrayOutputStream bos4 = new ByteArrayOutputStream();
  48. bmp.compress(Bitmap.CompressFormat.WEBP, 1, bos4);
  49.  
  50. byte[] bytes4 = bos4.toByteArray();
  51. Bitmap bmp4 = BitmapFactory.decodeByteArray(bytes4, 0, bytes4.length);
  52.  
  53. iv_4.setImageBitmap(bmp4);
  54.  
  55. }
  56.  
  57. /**
  58. * 保存文件到手机SD卡根目录中
  59. * @param bitmap
  60. */
  61. private void saveBmp(Bitmap bitmap) {
  62. File fileDir = Environment.getExternalStorageDirectory();
  63. String path = fileDir.getAbsolutePath() + "/lavor.webp";
  64.  
  65. File file = new File(path);
  66. if (file.exists()) {
  67. file.delete();
  68. }
  69. try {
  70. FileOutputStream outputStream = new FileOutputStream(file);
  71. bitmap.compress(Bitmap.CompressFormat.WEBP, 10, outputStream);
  72. outputStream.flush();
  73. outputStream.close();
  74. } catch (FileNotFoundException e) {
  75. e.printStackTrace();
  76. } catch (IOException e) {
  77. e.printStackTrace();
  78. }
  79. }
  80. }

效果:

Bitmap之compress图片压缩的更多相关文章

  1. 有关Option.inSamplSize 和 Compress 图片压缩

    1.图片占用内存:占用的内存 = 图片长度 * 图片宽度 * 单位像素占用的字节数 注: 图片长度和图片宽度就是图片在行列上的像素数量. 图片格式: ALPHA_8:表示8位Alpha位图,即A=8, ...

  2. Android 图片压缩各种方式

       前言:由于公司项目当中需要用到压缩这块的相应技术,之前也做过的图片压缩都不是特别的理想, 所以这次花了很多心思,仔细研究和在网上找到了很多相对应的资料.为了就是 以后再做的时候直接拿来用就可以了 ...

  3. [Android算法] bitmap 将图片压缩到指定的大小

    Bitmap压缩到指定大小: private void imageZoom() {//图片允许最大空间 单位:KBdouble maxSize =400.00;//将bitmap放至数组中,意在bit ...

  4. 图片处理之-Bitmap.Config,jpeg压缩与大小

    关于ARGB_8888.ALPHA_8.ARGB_4444.RGB_565的理解 A:透明度 R:红色 G:绿 B:蓝 Bitmap.Config ARGB_4444:每个像素占四位,即A=4,R=4 ...

  5. android 图片压缩

    引用:http://104zz.iteye.com/blog/1694762 第一:我们先看下质量压缩方法: private Bitmap compressImage(Bitmap image) { ...

  6. Bitmap 的几种压缩方式

    微信的缩略图要求是不大于32k,这就需要对我的图片进行压缩.试了几种方法,一一道来. 代码如下 ByteArrayOutputStream baos =  new  ByteArrayOutputSt ...

  7. (转)android图片压缩总结

    原文地址:http://blog.csdn.net/cherry609195946/article/details/9264409 一.图片的存在形式 1.文件形式(即以二进制形式存在于硬盘上)2.流 ...

  8. Android图片压缩方法总结

    本文总结Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩).   第一:质量压缩方法:   ? 1 2 3 ...

  9. Android webview实现上传图片的效果(图片压缩)

    mainactivity代码 package com.bwie.webviewupload; import java.io.ByteArrayInputStream; import java.io.B ...

随机推荐

  1. awk初级教程

    参考:sed & awk 概述 sed & awk指令组成 与sed区别 尽管awk指令与sed指令的结构相同,都由模式和过程两部分组成,但过程本身有很大不同. awk看上去不像编辑器 ...

  2. cuda环境搭建

    cuda环境搭建 cuda 的安装 一篇很不错的博客 https://blog.csdn.net/u014529295/article/details/78766258 另外官网也有介绍 https: ...

  3. Jenkins手把手图文教程[基于Jenkins 2.164.1]

    原文:http://www.itmuch.com/work/jenkins-in-action/ 一.下载 前往https://jenkins.io/download/ ,按需下载.如用于生产,建议下 ...

  4. python小知识点汇总

    一 写mysql 场景:自动化用例中需要构造数据,写入redis 表中已有该primary_key的记录,在现有基础上更新字段 表中无该记录,需要插入 # 请求传入table字段,db.table,c ...

  5. Robot Framework--变量

    Robot Framework的变量分为标量, 列表和字典, 分别使用语法格式 ${SCALAR}, @{LIST} 和 &{DICT} 来定义. 此外, 环境变量可以直接使用语法 %{ENV ...

  6. Codeforces Round #336 (Div. 2) D. Zuma(区间DP)

    题目链接:https://codeforces.com/contest/608/problem/D 题意:给出n个宝石的颜色ci,现在有一个操作,就是子串的颜色是回文串的区间可以通过一次操作消去,问最 ...

  7. Codeforces Global Round 2 E. Pavel and Triangles(思维+DP)

    题目链接:https://codeforces.com/contest/1119/problem/E 题意:有n种长度的棍子,有a_i根2^i长度的棍子,问最多可以组成多少个三角形 题解:dp[i]表 ...

  8. Elasticsearch 调优之 shrink

    对于索引分片数量,我们一般在模板中统一定义,在数据规模比较大的集群中,索引分片数一般也大一些,在我的集群中设置为 24.但是,并不是所有的索引数据量都很大,这些小数据量的索引也同样有较大的分片数.在 ...

  9. 爬虫(十八):scrapy分布式部署

    scrapy部署神器-scrapyd -->GitHub地址  -->官方文档 一:安装scrapyd 安装:pip3 install scrapyd 这里我在另外一台ubuntu lin ...

  10. DEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作。

    把"Perform code analysis" 和 "Check TODO" 复选框前面的勾去掉就好了. 这个可能是因为所分析的目标文件太大了,造成一直分析不 ...