位置: 编程技术 - 正文

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

  • 印花税征税对象包括哪些
  • 境外企业在中国境内承包建筑工程应在
  • 收款金额比开票金额少是对方扣的手续费
  • 开票打印机可以自己买吗
  • 代扣代缴增值税是什么意思
  • 定额发票可以用旧的营业执照发票章吗
  • 暂估资产会计处理
  • 季末资产总额填错了要紧吗
  • 个税属于会计中的什么科目
  • 福利费进项税额转出会计分录账务处理
  • 审核通过的红字发票信息表可以撤销吗
  • 超标公积金应怎么办理
  • 不动产经营租赁属于现代服务吗
  • 物业公司付电业公司的电费如何做账务处理?
  • 营业外收入个税手续费返还
  • 抵扣税款是什么意思呢
  • 商品流通企业会计心得体会3000字
  • 开培训费专用发票开票有具体要求吗?
  • 专家评审费个人所得税计算公式
  • 增值税季度不超过30万怎么填表
  • 城市生活垃圾处理费应该交吗
  • 购进非税货物有折扣怎么做账?
  • 利润表适用执行小企业
  • 增值税留抵退税账务处理
  • 国内企业给国外企业开发票
  • 电脑内存条是干什么的?
  • 在建工程会计科目
  • 植物租赁方案
  • 电脑开机显示屏显示无信号黑屏怎么办
  • 闲置私家车出租APP
  • 短期投资计入什么科目
  • CVE-2016-1000027分析
  • 头歌java入门运算符和表达式答案
  • 金融机构借款利率最新规定
  • 框架开源
  • 借管理费用贷应交税费个人所得税
  • 定期定额和核定征收哪个好
  • vue点击按钮显示对应的内容
  • cookie什么意思啊
  • node.js教程详细
  • 有进项税额转出怎么做账
  • 企业资产损失税前扣除管理办法最新
  • 应付票据是商业承兑汇票吗
  • 公司捐款怎样抵扣
  • mongodb 入门
  • 织梦自定义模型调用
  • 费用的分摊要注意什么
  • c#连接数据库的基本步骤是什么
  • 管理费用明细科目大全
  • 以无形资产换入固定资产发生的净损益
  • 工会经费在哪儿申报
  • 工程项目增值税预缴税率
  • 小企业购进商品怎么入账
  • 跨年退货怎么处理账务
  • 小规模纳税人能开专票吗2023
  • 招标代理服务费计算器在线
  • 企业被收购的账务处理
  • 园林土方施工有哪些分项工程
  • 停薪留职社保怎么算
  • sqlserver数据导出导入脚本
  • windows7 记事本
  • 怎么查看win7系统电脑访问了哪些应用程序
  • 苹果怎样快速移动应用到其他桌面
  • windows8如何添加打印机
  • 联想win7笔记本怎么进入bios
  • win8.1卸载系统自带应用工具
  • express sendfile
  • bat怎么设置
  • Unity3D游戏开发标准教程
  • 杨辉三角的代码
  • javascript主要学什么
  • web开发工程师需要学什么
  • jquery实现点击按钮
  • python字典常用操作
  • js回调函数应用场景
  • Android开发使用的官方IDE是
  • 查国税发票验证码怎么查
  • 汽车商业险退保还有手续费吗
  • 资源税百科
  • 港澳台人士可以在上海申请积分吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设