位置: 编程技术 - 正文

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

  • 何谓运输,交通和交通运输
  • 差旅费跨年报销说明
  • 小规模纳税人季度申报
  • 房屋中介机构可以资金托管吗
  • 债券的投资收益率
  • 财产租赁个人所得税
  • 境外企业提供国外服务
  • 增值税转售行为怎么做会计处理?
  • 电子缴税付款凭证
  • 建筑企业如何才能上市
  • 企业购买商品
  • 房屋转租收入会计分录
  • 公司为员工交的五险一金到底是怎么回事
  • 一般纳税人注销库存需要补交税吗
  • 上年度多计提的工资怎么冲减
  • 全部出售子公司怎么做账
  • 资金占用利息怎么开票
  • 差额征税和差额计税
  • 与权益法核算相关的累计净损益
  • 税局代开专票会计分录怎么写?
  • win11开机黑屏进不去桌面
  • linux关闭thp
  • 出租厂房折旧可以税前扣除
  • win10更新kb5005033
  • 辞退补偿金额怎么做账
  • oeloader.exe - oeloader是什么进程 有什么用
  • thinkphp uuid
  • php新手入门教程
  • 商业银行流动性风险监管指标
  • 公允价值模式的特点
  • flask实现登录
  • eyring模型
  • 固定资产损失用什么科目
  • 销售自用的小汽车赚钱吗
  • 怎么能开公司
  • sql server nullif
  • 河南巩义黄河治理项目土方工程有哪些
  • 待报解预算收入是什么意思,扣了钱
  • 小规模结转成本怎么计算
  • 退伍军人9000补助
  • 员工周转房管理办法
  • 加工费的进项发票摘要写什么
  • 视同销售是按成本价入账还是按计税价格入账,为什么?
  • 公司购买一辆小型货车
  • 库存和结存
  • 企业代扣代缴哪些费用
  • 收到采购免费赔偿怎么办
  • 测试费几分钱入账
  • 进销项月末结转吗
  • 航天金税服务费发票在哪打印
  • 火车票进项抵扣需要认证吗
  • 摊销方法如何选择
  • 融资租赁固定资产不属于筹资活动
  • 建立明细账的注意事项
  • 计算机二级考试时间2024
  • solaris开放指定端口
  • linux命令sed -i
  • ubuntu怎么root权限
  • linux操作系统百度百科
  • 用户账户限制
  • xp系统怎么关闭fn
  • 添加或删除程序在哪win10
  • win10的三个安全问题
  • win8怎么查ip地址查询
  • shell脚本-lt
  • cocos2d开发的知名游戏
  • unity3ds
  • 游戏开发那些事
  • js链式编程的原理
  • node.js中的http.request方法使用说明
  • es6新方法有哪些
  • jQuery插件库
  • mysql批量建表脚本
  • jquery使用教程
  • unity3d怎么用
  • python中django
  • 购房发票上的税率9%包含契税吗
  • 不用税控盘可以勾选发票吗
  • 音箱海关税
  • 地方税务局发票管理所
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设