位置: 编程技术 - 正文

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

  • 一般纳税人的税点
  • 税务登记证号是纳税人识别号吗?
  • 隔月发票退回应该如何操作
  • 外汇储备保值增值
  • 发票上的金额是什么字体
  • 财产租赁合同印花税率多少
  • 电子承兑被拒付(可拒付追索)
  • 幼儿园个税怎么交
  • 企业入统的利弊
  • 物料耗用
  • 职工的补助金需交税吗
  • 纳税总额和实际上缴税费总额
  • 销售货物分期付款怎么确认收入
  • 以前年度资产损失的追补什么意思
  • 库存商品采用定价法
  • 做税审报告费如何做分录?
  • 车间消耗品的会计分录
  • 结转上年度的企业所得税会计分录?
  • 预付款对应的会计科目
  • 个人贷款打入公司账户
  • 酒店购买毛巾客房领用怎么做会计分录?
  • 开错的红字发票申请单上传了怎么撤销?
  • 公司注销库存商品转营业外收入
  • 拍卖的房产
  • 甲供工程会计分录
  • 营业外收入不纳税?
  • 一年期电子银行承兑汇票
  • 交易性金融资产的账务处理
  • 预付租金是什么
  • 进项税额进成本
  • 保险公司赔偿的存货自然灾害损失
  • 事业单位本年度工作小结
  • 企业在进行会计核算时选择一种不多计资产
  • 总资产净利率和权益乘数之间的关系
  • deepin安装windows字体
  • win10右键显示设置打不开怎么办
  • 健康助手在哪里找到
  • 深入分析php引用文献
  • 电脑老是弹出广告怎么处理
  • php查看变量数据类型
  • 预收账款可以挂账多久
  • 带薪缺勤会计分录
  • html中a标签怎么引用图片
  • php curl_setopt
  • php获取ua
  • 平价转让股权怎么交企业所得税
  • 免税收入包括
  • 偷税行为如何处理
  • 税务处理决定书撤销情形
  • 开票限额相关规定最新
  • 金税盘维护费应该在那个表填写
  • 小规模纳税人是查账征收还是核定征收
  • 支付水电费会计
  • 确认应付职工薪酬是什么意思
  • 贴现利息高好还是低好
  • 过桥贷款有什么风险
  • 费用分摊怎么开口说好
  • 银企对账操作流程
  • 进项税额抵扣是按税率分开抵扣吗
  • 银行对账单和银行流水的区别
  • 哪些固定资产不计提折旧
  • mysql8.0优化
  • win10能玩dota
  • 怎样提升win10开机速度
  • xp文件夹选项在哪里打开
  • 取消windows 7的自动关机如何设置
  • ubuntu安装office2019
  • windows资源管理器停止工作怎么办
  • windows怎么拨号
  • 如何强制清理内存
  • win7系统中如何查看隐藏文件
  • win7系统无法共享win10系统打印机
  • 如何解决windows不是正版的问题
  • bootstrap-treeview.js
  • 比较漂亮的一个字
  • css+div布局的常用方法
  • javascript的dom操作
  • 涉嫌虚开增值税专用发票罪
  • 江苏省的发票如何查验真伪
  • 税务全国联网了吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设