位置: 编程技术 - 正文

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

  • 发票名称开错了但是税号没错怎么办
  • 银行手续费回单可以作为入账依据吗
  • 销售给学员的教材是否要缴纳增值税?
  • 预收账款可以挂多久
  • 工程管理服务属于哪个国标行业
  • 专家住宿费入什么科目
  • 暂估成本没有发票
  • 建筑业企业纳税人税率是多少
  • 领料投入生产会计分录
  • 房地产土地增值税计税依据
  • 超额库存现金
  • 维修房产用的建材会计分录
  • 服务费公司的账务处理
  • 预缴企业所得税税率
  • 购进租赁设备分录
  • 代收水电费如何开票商品分类编码
  • 利息收入要不要交增值税?
  • 个人所得税福利费免税范围
  • 工程预缴增值税2019最新规定
  • 外国企业代表处企业所得税
  • 收到畜禽无害化处罚通知
  • 王者荣耀中张飞的台词
  • 更改win10通知
  • 如何在苹果电脑上删除软件
  • .linux文件
  • 房地产企业销售无产权车位
  • 违约金没有写按什么算
  • 营改增后不动产发票
  • 橡皮树怎么养护
  • laravel ajax
  • 发票中的密码区是如何形成的
  • 操作系统页表项怎么算
  • fdisk命令的功能是什么?
  • 准予扣除的业务宣传费
  • 个人提供翻译服务
  • 收到工会经费返还做收入吗
  • 专家咨询费比例不能超过多少
  • 送货单需要跟在凭证后面吗
  • mongodb常用语句
  • 以前年度未处理的业务
  • 出差发生的旅游事件
  • 什么是一般增值税纳税人
  • access参数查询怎么弄
  • sql server2012使用方法
  • 应交税费的核算范围
  • 未确认融资费用含税吗
  • 小规模减免的增值税
  • 现金折扣方式销售货物不得从计税销售额中扣减折扣额
  • 现金折让的账务处理
  • 广告费应归于什么费用
  • 捐赠的资产属于什么科目
  • 以前年度销售退回买方账务处理
  • 去年的暂估入库今年想把它给冲出来怎么做分录
  • 固定资产清理产生的收入计入
  • 工程年底结账
  • 党委经费是国家政府出吗?
  • 用友t3财务通普及版如何开下年账
  • 职工教育经费可以结转几年继续抵扣吗
  • VMWare linux mysql 5.7.13安装配置教程
  • 怎么查看445端口有没有关闭
  • windows使用cmd运行程序
  • win10 windows update在哪里打开
  • 隐藏文件或文件夹
  • Win10系统无法运行程序
  • 清除电脑开机痕迹
  • python制作数字拼图
  • scrapy爬虫教程
  • python爬取csdn
  • Android Studio Attach source code
  • nodejs重命名文件
  • bootstraprow布局
  • node的理解
  • 开发 工具
  • android studio项目无法运行
  • android判断应用是否在前台
  • android studio 安装好后怎么在桌面找到
  • python中的set方法
  • 2021年四川医保缴费截止时间
  • 福建省农业厅副厅长梁
  • 收购农民自产农产品可以使用现金
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设