位置: 编程技术 - 正文

开发日记(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]安卓框架的学习之路(安卓框架是什么怎么用)

  • 关税完税价格是离岸价还是到岸价
  • 一般纳税人哪些可以开3%的发票吗
  • 简易计税费
  • 公司购个人的二手车流程
  • 税控盘服务费减免税会计分录
  • 向投资者分配现金股利会影响负债吗
  • 应收账款计提坏账准备是谨慎性原则吗
  • 外资企业所得税和内资区别
  • 工资未发放是否可以仲裁
  • 企业所得税季度纳税申报表 a类
  • 航天信息开票步骤
  • 核定征收的公司用做账么
  • 酒类消费税征收环节归纳
  • 费用无发票财务怎么做账
  • 成立公司工会
  • 营改增后征收增值税的税目
  • 不锈钢材料开票
  • 应收款项核销的原因
  • 电子商业汇票背书是什么意思
  • 客户的佣金
  • 华为最新款手机2023款
  • 怎么找回被册的软件
  • 手机文件打开方式怎么设置默认
  • 房地产开发资质查询
  • 建筑公司分包
  • php的数组函数
  • php多线程怎么实现
  • win10启用网络发现保存后又变成了关闭
  • 如何解决Windows10电脑卡顿现象
  • 蓝牙耳机连电脑
  • 偷税漏税如何处罚
  • mac 快速切换输入法
  • 劳务费支出计入什么科目?
  • 贝纳克波斯图干红葡萄酒
  • 羊了不眄翻译
  • 被白雪覆盖的彩虹歌词
  • php表单提交输入判断
  • php实现邮箱验证码
  • 公司注销前的资料怎么办
  • 在建工程完成后转入什么科目
  • javascript导入包
  • ai形成生成器工具怎么用
  • php获取位置
  • 三代手续费返还是否需要缴纳增值税
  • 豪华车消费税的计算公式
  • 进口商品销售的会计分录
  • 工厂院里栽什么树好呢
  • 现金折扣什么时候冲减收入
  • kibana 教程
  • 企业所得税季度预缴怎么计算
  • 合伙企业可以列入法人吗
  • 资产处置收益的核算内容
  • 行政单位与事业单位净资产的比较
  • 劳务外经证预缴税款
  • 收到海关进口关税怎么办
  • 固定资产的原价减去预计净残值等于什么
  • 主营业务成本暂估怎么算
  • 发票本月没有认证能用吗
  • 疫情期间购买消毒弥雾机的请示
  • 运杂费扣除增值税进项税额
  • 平销返利销项税
  • 发票遗失重开需要收费吗?
  • 税收会计采用什么记账法
  • mysql 绿色
  • Win10 Mobile 10572升级后QQ/微信无法发送图片
  • windows手动启动服务
  • win8怎么调整显示器亮度
  • 戴尔笔记本自带win7系统盘重装系统
  • linux系统的安装和常用命令
  • css的transition和animation
  • vue中使用foreach
  • shell脚本-lt
  • python二级怎么出题
  • java深入理解
  • unity怎么调用方法
  • 果断收藏9个Javascript代码高亮脚本
  • python作用域和命名空间
  • 留抵税额退税政策2023
  • 国税申报密码忘了怎么办
  • 增值税与个人的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设