位置: 编程技术 - 正文

开发日记(3)转发:比较靠谱的图片压缩(开发日记3雷火剑)

编辑:rootadmin

推荐整理分享开发日记(3)转发:比较靠谱的图片压缩(开发日记3雷火剑),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:开发日记日语翻译,开发日记3雷火剑,开发日记三步曲,开发日记3OVA,开发日记3OVA,开发日记3OVA,开发日记日文翻译,开发日记日文翻译,内容如对您有帮助,希望把文章链接给更多的朋友!

第一:我们先看下质量压缩方法:

Java代码 private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, , baos);//质量压缩方法,这里表示不压缩,把压缩后的数据存放到baos中 int options = ; while ( baos.toByteArray().length / >) { //循环判断如果压缩后图片是否大于kb,大于继续压缩 baos.reset();//重置baos即清空baos image.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中 options -= ;//每次都减少 } ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());//把压缩后的数据baos存放到ByteArrayInputStream中 Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);//把ByteArrayInputStream数据生成图片 return bitmap; }

第二:图片按比例大小压缩方法(根据路径获取图片并压缩):

开发日记(3)转发:比较靠谱的图片压缩(开发日记3雷火剑)

Java代码 private Bitmap getimage(String srcPath) { BitmapFactory.Options newOpts = new BitmapFactory.Options(); //开始读入图片,此时把options.inJustDecodeBounds 设回true了 newOpts.inJustDecodeBounds = true; Bitmap bitmap = BitmapFactory.decodeFile(srcPath,newOpts);//此时返回bm为空 newOpts.inJustDecodeBounds = false; int w = newOpts.outWidth; int h = newOpts.outHeight; //现在主流手机比较多是*分辨率,所以高和宽我们设置为 float hh = f;//这里设置高度为f float ww = f;//这里设置宽度为f //缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可 int be = 1;//be=1表示不缩放 if (w > h && w > ww) {//如果宽度大的话根据宽度固定大小缩放 be = (int) (newOpts.outWidth / ww); } else if (w < h && h > hh) {//如果高度高的话根据宽度固定大小缩放 be = (int) (newOpts.outHeight / hh); } if (be <= 0) be = 1; newOpts.inSampleSize = be;//设置缩放比例 //重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了 bitmap = BitmapFactory.decodeFile(srcPath, newOpts); return compressImage(bitmap);//压缩好比例大小后再进行质量压缩 }

第三:图片按比例大小压缩方法(根据Bitmap图片压缩):

Java代码 private Bitmap comp(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, , baos); if( baos.toByteArray().length / >) {//判断如果图片大于1M,进行压缩避免在生成图片(BitmapFactory.decodeStream)时溢出 baos.reset();//重置baos即清空baos image.compress(Bitmap.CompressFormat.JPEG, , baos);//这里压缩%,把压缩后的数据存放到baos中 } ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray()); BitmapFactory.Options newOpts = new BitmapFactory.Options(); //开始读入图片,此时把options.inJustDecodeBounds 设回true了 newOpts.inJustDecodeBounds = true; Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, newOpts); newOpts.inJustDecodeBounds = false; int w = newOpts.outWidth; int h = newOpts.outHeight; //现在主流手机比较多是*分辨率,所以高和宽我们设置为 float hh = f;//这里设置高度为f float ww = f;//这里设置宽度为f //缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可 int be = 1;//be=1表示不缩放 if (w > h && w > ww) {//如果宽度大的话根据宽度固定大小缩放 be = (int) (newOpts.outWidth / ww); } else if (w < h && h > hh) {//如果高度高的话根据宽度固定大小缩放 be = (int) (newOpts.outHeight / hh); } if (be <= 0) be = 1; newOpts.inSampleSize = be;//设置缩放比例 //重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了 isBm = new ByteArrayInputStream(baos.toByteArray()); bitmap = BitmapFactory.decodeStream(isBm, null, newOpts); return compressImage(bitmap);//压缩好比例大小后再进行质量压缩 }

[Xutils]安卓框架的学习之路 开发用别人框架蛋疼又木有,而且还是初级程序员这种,关于Xutils已经无力吐槽了。网上一搜基本上全是复制的模版统一一样,心痛有木有!@!!!!

欢迎使用CSDN-markdown编辑器 原文出处:

如何在Android上编写高效的Java代码 转自:

标签: 开发日记3雷火剑

本文链接地址:https://www.jiuchutong.com/biancheng/382286.html 转载请保留说明!

上一篇:Android四大组件之一:contentprovider & 三大存储方式之一:SQLite数据库存储 应用实例(android四大组件面试)

下一篇:[Xutils]安卓框架的学习之路(安卓框架是什么怎么用)

  • 停车费增值税税率
  • 定额备用金与非定额备用金的会计分录
  • 建筑公司预收了款项已经开了增值税发票怎么做账
  • 后期装修改造费用计入什么科目
  • 资产减值损失包括应收账款减值损失吗
  • 税款的汇兑损益如何做账
  • 金税盘递减税款2022
  • 其他权益工具和交易性金融资产
  • 工程预付款需要什么资料
  • 转让房产的单位和个人都需要缴纳契税吗?
  • 小规模跨年发票可以入账吗
  • 工程预收款如何处理
  • 现金折扣销售退回的会计分录
  • 政府扶贫支出
  • 多交的季度所得税怎么算
  • 企业用于存货的支出
  • 应交税费应交增值税减免税款
  • 税务局开具无违规证明
  • 其他应收款借方表示增加吗
  • 公司不交增值税对法人有影响吗
  • 公司基本户没开影响报税吗
  • 发票冲红有时间要求吗
  • 工资退税手续需要多久
  • 企业未代扣代缴个税
  • 社保缴费基数是什么意思,退休能拿多少
  • 商贸公司进项税额大
  • 简易征收办法征收一般纳税人
  • 手机cpu性能排行榜2023最新天梯图
  • 如何在excel中计算两列数值的差
  • 苹果14出来13会下架吗
  • 各种linux
  • 补缴的土地出让金契税
  • php冒泡法排序
  • 事业单位利息收入
  • 销货退回与折让属于什么科目
  • 货物运输增值税管理
  • 供热企业的税收分类编码
  • 债券利息调整怎样计算
  • php strncmp
  • 补缴以前年度企业所得税如何做账
  • 教育咨询公司能开培训费发票吗
  • 织梦cms官网
  • 残疾人保障金所属期怎么填
  • 租赁合同的印花税怎么交
  • SQL Server Native Client下载 SQL Server Native Client安装方法
  • SQL Server中使用的SQL是
  • 航空运输电子客票行程单查验
  • 保税仓库税收政策
  • 固定资产工作汇报
  • 购买的车位如何做账
  • 出让价格不得低于基准地价
  • 一般纳税人支付房租账务处理
  • 减免税款借方有利息吗
  • 公司员工的电话费可以做费用吗
  • 自产货物赠送客户账务处理
  • 印花税税款所属期怎么填
  • 在苹果电脑上怎么下载软件
  • win8系统崩溃按f8没用
  • ubuntu系统应用
  • win7系统笔记本怎么连接wifi
  • 应用程序发生异常如何解决
  • .sfx.exe是什么文件
  • Win10 Mobile 10586.11已经在慢速通道推送 着离正式版更近了
  • win10一年更新几次
  • 如何使用u盘安装linux
  • vps如何搭建ss
  • windows8如何进入bios
  • win10升级安装视频
  • js页面点击怎么随机生成图片
  • bootstrap-Treeview实现级联勾选
  • linux 压缩解压缩
  • shell脚本字符串换行
  • jq判断浏览器
  • js中排序的函数
  • 请问在javascript程序中
  • public services翻译
  • js复制字符串的方法
  • android studio怎么清除缓存
  • 房地产契税2023年最新政策
  • 宣城国税局电话是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设