位置: 编程技术 - 正文

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

  • 个税系统更正申报可以更正几次
  • 集体不动产和动产包括
  • 个体户一季度利润28万用缴纳增值税吗
  • 中药饮片增值税税率
  • 合并报表成本法调整为权益法
  • 外贸企业当月没交税
  • 存货置换固定资产
  • 营改增后常用发票报销的种类有哪些呢?
  • 拨款和支出的区别
  • 案例分析关于拟建科学馆的请示报告
  • 垫付的医药费怎么理赔
  • 城建税和教育费附加可以税前扣除吗
  • 事业单位固定资产
  • 支付境外服务费税务如何处理
  • spss安装后无法启动许可证授权向导
  • 鼠标玩游戏飘怎么回事
  • 缴纳当月增值税30000元
  • bios详细解释及作用
  • 开办费的账务处理实例
  • 小规模纳税人没有进项发票怎么办
  • u盘数据全部丢失
  • vue父组件引入子组件
  • 增量预算对应什么预算
  • 城镇土地使用税纳税义务发生时间
  • PHP:imagecolorexactalpha()的用法_GD库图像处理函数
  • 商业企业营业收入
  • 股权激励的账务如何处理
  • 前端cli搭建
  • 框架 frame
  • Vue3通透教程【二】更高效的构建工具—Vite
  • tabstat命令怎么用
  • 在税务局怎么查补缴的社保
  • 用友t6成本核算
  • 利息发票可以抵扣吗
  • 所得税申报资产总额平均值
  • 用税盘开发票税费扣除是怎么回事?
  • dedecms源码
  • 物流企业财务流程
  • 一般纳税人和小规模纳税人怎么界定
  • 托盘入账哪个科目最好
  • 税控盘的作用是什么
  • 增值税发票记账联用途
  • 在零售环节征收消费税的是哪些
  • 开收据是财务还是出纳
  • 其他收益里的政府是什么
  • 工程物资月末必须结转吗
  • 怎么盘存货
  • 建筑业增值税税负率
  • 暂估和开票的差异 erp处理
  • 商贸企业增值税税负率低于1%则存在涉税问题
  • 销售费用主要账户包括
  • 其他业务收入借贷方向表示
  • 过户车子需要带什么证件
  • 施工企业项目部发生的管理人员工资应计入
  • 辅导期一般纳税人标准
  • 转回小规模
  • 固定资产后期可以折旧吗
  • 一般纳税人月底进项税销项税怎么做分录
  • 财务费用的内容包括哪些
  • mysql 随机io
  • sql server的相关技术知识
  • 在mac上如何使用微信
  • win8/10whql
  • 鼠标系统怎么安装
  • xp系统弹出帮助和支持
  • bios setup在哪里
  • winkey.exe - winkey是什么进程
  • Linux系统怎么设置窗口关闭按键在右侧
  • 创游世界
  • Extjs4 关于Store的一些操作(加载/回调/添加)
  • Unity3d OnApplicationPause与OnApplicationFocus 判断游戏暂停还是重新启动
  • iframe嵌入页面出现跨域问题
  • jquery示例
  • 怎么看网页的编码格式
  • 怎样在中国税务用手机交社保
  • 一季度土地市场
  • 温州电子税务局电话号码
  • 代理记账代理记账价格
  • 关于个体户的个人所得税的最新政策法规
  • 山东省国税局电话客服热线
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设