位置: 编程技术 - 正文

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

  • 拟上市企业需要做什么
  • 股票印花税计算公式
  • 劳务工资入什么科目
  • 支付残疾人保证金的账务处理
  • 没有外币账户可以收外币吗
  • 集团股份怎么分配
  • 代收收入会计分录
  • 给客户赔偿如何入账
  • 产品销售员
  • 企业经营收入达到多少
  • 营改增后小规模纳税人税率是多少
  • 营改增阶段
  • 房产税税率和应纳税额
  • 增值税专票给客户的是第几联
  • 开专票必须公对公付款不然不开
  • 并购重组协议样本
  • 药品增值税简易征收
  • 企业购买结构性存款会计处理
  • 服装具有什么性
  • 穿越火线下载安装
  • 补助是按基本工资还是总工资
  • 收不回的心
  • php基础语法
  • 成品油消费税怎么抵扣
  • 哪一年底,由linux基金会成立?
  • 进项税额转出会计分录账务处理
  • 进货发票怎么抵税
  • 逾期未收回包装物押金增值税
  • vue 父组件调子组件方法
  • 赊销分期付款
  • 企业的存货按照计划成本核算,期初
  • 筹建期间的开办费为什么不属于资产
  • but all failed
  • tls版本过低怎么办
  • vue初始化命令
  • 常见反爬策略
  • 带息应收票据账务处理分录
  • 认缴制情况下 公司一定要出资到位再注销吗
  • 外聘人员怎么申报个税
  • 培训费用是什么成本
  • 缴税的会计处理
  • 现金流量表里的其他指的是什么
  • 公司款能转到个人卡上吗
  • 应收账款项目的金额公式
  • 电子软件是如何诞生的
  • 配送中心适合哪种类型的企业
  • wordpress站点地址如何设置
  • 六税两费减半征收政策2023
  • 科技型中小企业享受优惠税收政策
  • 税前利润是否等于利润总额
  • 交易性金融资产公允价值变动怎么算
  • 存货价值的计算公式
  • 银行付款明细
  • 幼儿园收取的生活费免税吗
  • 一般纳税人的招待费会计分录
  • 房地产企业所得税税负率是多少
  • 不开发票的收入如何申报纳税?
  • 内部产生的商誉应确认为无形资产
  • 损益类账户借贷方向增减
  • 期末结账后没有余额的科目
  • 酒店房间消耗品成本
  • 电子回单费用如何查询
  • 减免所得税优惠政策
  • mysql 存过
  • 苹果电脑安全性
  • linux 解析
  • 自动监测和在线监测一样吗
  • shell脚本实例精讲
  • android studio右边的视图不见了
  • Unity3D游戏开发标准教程
  • android音乐播放器源代码
  • 基于python的研究
  • androidstudio webview
  • 日本的消费税是累进税吗
  • 青岛的红叶什么时候红
  • 没有核定印花税罚款吗
  • 税务总局绩效管理四大板块
  • 无锡电子税务局怎么修改办税人员信息
  • 南京市国家税务局官网
  • 非载货专项作业车属于什么车
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设