位置: 编程技术 - 正文

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

  • 个人所得税退付手续费是给企业还是会计
  • 未分配利润转增股本会计处理
  • 这个季度报税时间怎么算
  • 代扣代缴增值税纳税义务发生时间
  • 出售无形资产属于资产处置损益吗
  • 小规模费用发票多有什么用途
  • 资本公积只能转现金吗
  • 预付账款有二级科目嘛
  • 增值税加附加税加企业所得税加印花税是多少个税点
  • 同一控制下企业合并和非同一控制下企业合并的区别
  • 投标函中的其他是指什么
  • 特定资产收益权融资业务
  • 非货币性资产交换固定资产清理
  • 债权投资的账务处理步骤
  • 公司名字开错了,认证过了怎么处理
  • 企业股权无偿划转是否征税
  • 协会会费收入会计科目
  • 所有的进项税都在借方吗
  • 社保补缴上月的在当月扣款
  • 购物卡开预付卡有风险吗
  • 发票付款证明怎么写
  • 企业弥补亏损的三个途径
  • 清包工和甲供工区别在哪
  • 应付账款期末余额是负数是什么意思
  • 企业取得代扣代缴个税手续费分录
  • 计提工资是计提当月的还是上个月的
  • 金税盘上传参数设置服务器设置
  • 营业外支出的税额要进项转出吗
  • 应收账款未计提坏账能直接核销
  • mac睡眠后无法正常唤醒
  • linux sl
  • 角马群的迁徙方向
  • react hook详解
  • 陈列费用明细表怎么做
  • 差额征税怎么交税
  • vue中key
  • 有关的拼音
  • 国内版的chatpdf
  • python的切片操作
  • 退票产生的费用如何报销
  • 债券发行费用包括
  • 策划费多少钱
  • mongodb主从同步速度
  • 制造费用的作用
  • mysql更新语句
  • sa密码不满足强密码要求
  • 公司为非本单位缴纳社保
  • 年度利润总额的英文缩写
  • 建设银行e信通介绍
  • 研发费用允许加计扣除的标准
  • 待摊费用要怎么做账
  • 生产企业电费怎么做账
  • 税控设备技术维护费
  • 公司收到某人打款怎么做分录
  • 长期应付未付款项清理方案
  • 信用减值损失和公允价值变动的区别
  • 一件产品在不同场合的价格
  • 两家公司
  • sql like多个
  • 获取sqlserver密码
  • sqlmd5加密后解密
  • mysql日期字段
  • bios的含义
  • win10系统怎么设置ip地址
  • windows7英雄联盟老是崩溃
  • win7怎么运行itunes
  • win7宽带连接改成无线网络
  • win8启动后的初始界面
  • 结构 类型
  • 批处理删除注册表指定项
  • python运算符的用法
  • android framework 框架层功能梳理
  • JavaScript中的复杂数据类型又称为
  • jquery遍历数组的方法
  • jq 使用
  • android自学
  • boost源码编译
  • 国家税务总局发票查询官网
  • 重庆电子税务局怎么绑定办税人员
  • 海珠税务局许丰
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设