由于iphone6和iphone6plus目前还能使用,有些客户抱怨说游戏会在Safari上重新加载,甚至不能使用,查了很多资料,发现出现这种情况是因为加载到内存的图片尺寸超了,所有图片尺寸面积和超过7千万或者8千万则会出现该问题。下面有统计图片尺寸的小工具。

电脑先安装nodejs,然后新建目录imagesize,在该目录下在命令行里npm init,一路回车,生成package.json,继续在命令行里npm i image-size,安装模块,新建imagesize.js,引入fs和image-size,完整代码如下


var fs = require('fs');
var imagesizeof = require('image-size');//获取各个目录
var list = [];
var listimagesize = [];//如果数字含有小数部分,那么可以将小数部分单独取出
//将小数部分的数字转换为字符串的方法:var chnNumChar = ["零","一","二","三","四","五","六","七","八","九"];
var chnUnitSection = ["","万","亿","万亿","亿亿"];
var chnUnitChar = ["","十","百","千"];
// //输出    "一百二十三亿三千九百四十九万二千八百三十五点九九三零二"
var numToChn = function(num){var index =  num.toString().indexOf(".");if(index != -1){var str = num.toString().slice(index);var a = "点";for(var i=1;i<str.length;i++){a += chnNumChar[parseInt(str[i])];}return a ;}else{return ;}
}
//定义在每个小节的内部进行转化的方法,其他部分则与小节内部转化方法相同
function sectionToChinese(section){var str = '', chnstr = '',zero= false,count=0;   //zero为是否进行补零, 第一次进行取余由于为个位数,默认不补零while(section>0){var v = section % 10;  //对数字取余10,得到的数即为个位数if(v ==0){                    //如果数字为零,则对字符串进行补零if(zero){zero = false;        //如果遇到连续多次取余都是0,那么只需补一个零即可chnstr = chnNumChar[v] + chnstr;}}else{zero = true;           //第一次取余之后,如果再次取余为零,则需要补零str = chnNumChar[v];str += chnUnitChar[count];chnstr = str + chnstr;}count++;section = Math.floor(section/10);}return chnstr;
}
//定义整个数字全部转换的方法,需要依次对数字进行10000为单位的取余,然后分成小节,按小节计算,当每个小节的数不足1000时,则需要进行补零
function TransformToChinese(num){var a = numToChn(num);num = Math.floor(num);var unitPos = 0;var strIns = '', chnStr = '';var needZero = false;if(num === 0){return chnNumChar[0];}while(num > 0){var section = num % 10000;if(needZero){chnStr = chnNumChar[0] + chnStr;}strIns = sectionToChinese(section);strIns += (section !== 0) ? chnUnitSection[unitPos] : chnUnitSection[0];chnStr = strIns + chnStr;needZero = (section < 1000) && (section > 0);num = Math.floor(num / 10000);unitPos++;}// return chnStr+a;return chnStr;
}
// TransformToChinese(12339492835.99302);function getfoldername(path) {// var path = rootpath + gamename;// var path = rootpath + gamename;var isExists = fs.existsSync(path);if(!isExists) {console.log("异常情况,被终止------文件不存在:获取所有图片到数组",path);process.exit();}var files = fs.readdirSync(path);files.forEach(function (item, index) {var fPath = path + "/" + item;var stat = fs.statSync(fPath);if(stat.isDirectory() === true) {if(item.indexOf(".Dir") == -1){list.push(item);}}});for(var i = 0; i < list.length; i++){getfolderiamgesize(path,list[i])}totalallsize();
}function getfolderiamgesize(_path,code) {var path = _path + "/" + code;var imagepngsizelist = [];var imagejpgsizelist = [];var files = fs.readdirSync(path);files.forEach(function (item, index) {var fPath = path + "/" + item;var stat = fs.statSync(fPath);var sub_str = fPath.substr(fPath.length - 4,fPath.length);var size;if (stat.isFile() === true) {//将所有的png,jpg,fntif(sub_str == ".png"){size = imagesizeof(fPath);imagepngsizelist.push(size);}if(sub_str == ".jpg"){size = imagesizeof(fPath);imagejpgsizelist.push(size);}}});var allpngsize = 0;var alljpgsize = 0;for(var i = 0; i < imagepngsizelist.length; i++){allpngsize = allpngsize + imagepngsizelist[i].width * imagepngsizelist[i].height;}for(var i = 0; i < imagejpgsizelist.length; i++){alljpgsize = alljpgsize + imagejpgsizelist[i].width * imagejpgsizelist[i].height;}var pngsizezh = TransformToChinese(allpngsize);var jpgsizezh = TransformToChinese(alljpgsize);var allsize = allpngsize+alljpgsize;var allsizezh = TransformToChinese(allsize);var imagesize = {code:code,pngsize:allpngsize,pngsizezh:pngsizezh,jpgsize:alljpgsize,jpgsizezh:jpgsizezh,totalsize:allsize,totalsizezh:allsizezh}listimagesize.push(imagesize);
}function totalallsize() {function compare(val1,val2) {return val1.totalsize - val2.totalsize;}listimagesize.sort(compare);for(var i = 0; i < listimagesize.length; i++){console.log("文件夹名",listimagesize[i].code);console.log("jpg大小",listimagesize[i].jpgsize);console.log("png大小",listimagesize[i].pngsize);console.log("合计大小",listimagesize[i].totalsize);console.log("jpg大小中文",listimagesize[i].jpgsizezh);console.log("png大小中文",listimagesize[i].pngsizezh);console.log("合计大小中文",listimagesize[i].totalsizezh);console.log("-----------序号" + i + "------------");}console.log("——————————————————排序后全部统计完成——————————————————");
}getfoldername("./images");

在该js文件下有一个方法,getfoldername,传入需要统计的图片所在目录,运行后,在打印信息里会打印出来目录里图片的面积

nodejs下image-size统计图片的尺寸相关推荐

  1. html无法获取图片高宽,如何解决谷歌浏览器下jquery无法获取图片的尺寸

    代码如下: $(document).ready(function(){ var img_h=$img.height(); var img_w=$img.width(); }) 以上代码在IE和火狐中没 ...

  2. MarkDown内如何调整图片的尺寸及对齐方式?

    前言 想发布已经写好的MarkDown文档,需要手动调整的地方只有图片.原因是默认插入的图片太大的话,图片会占满屏幕,导致浏览不便. 个人体验:常见的横屏情况下,一张图片不宜超过2/3屏幕高度,主体内 ...

  3. 怎么用电脑修改图片尺寸?图片大小尺寸修改教程

    在平时生活中,随着现在的数码设备发展,拍摄的照片越来越清楚,像素越来越高,但是像素高的照片体积也就越大,在网上使用这些照片素材或者发送某些高清图片文件的时候都会遇到图片过大无法使用的情况,有的会注明要 ...

  4. STM32F407ZGT6控制ESP8266与OV2640下的百度智能图片识别

    前言:STM32F407ZGT6控制OV2640下采集到JPG图片格式的二进制数据,然后对二进制数据进行BASE64编码,接着通过串口将数据传输给ESP8266并上传至训练好的EASYDL的AI算法识 ...

  5. java照片拍摄时间_java读取图片的(尺寸、拍摄日期、标记)等EXIF信息

    主要代码如下: package com.test; import java.io.File; import java.io.IOException; import java.util.Iterator ...

  6. Python PIL.Image模块:图片变更尺寸大小(宽x高)

    现实需求:变更图片尺寸 要求:原图为建行一广告图片(来源于网络),缩小为800x600的小图片. >>> import os >>> from PIL import ...

  7. python如何获取图片的尺寸_如何基于Python获取图片的物理尺寸

    如何基于Python获取图片的物理尺寸 这篇文章主要介绍了如何基于Python获取图片的物理尺寸,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题 ...

  8. 批量降低图片的尺寸大小

    问题描述:在使用深度学习YOLO或者Faster RCNN训练数据时,训练图片的尺寸(一般为640×640)一般比我们获取到的图片尺寸较小(原图都比较大),为了提高训练速度,不能使用原图训练,所以需要 ...

  9. resize函数缩小图片的尺寸 车辆检测

    场景 使用resize函数缩小图片的尺寸,希望能够减少车辆上不相干的颜色,例如车牌,例如车镜,或者是出租车的车顶,希望屏蔽相关的细节,从而描绘出车辆的轮廓,最终没有达到任何的效果,contour没有实 ...

最新文章

  1. 【 FPGA 】时钟简介
  2. 微信小程序的wxss好难啊,记录我的搞笑界面
  3. android studio无法新建工程,我刚刚升级了Android Studio3.3.2,但是我不能创建一个新的项目。这里是错误日志。我使用的开发语言是Java。...
  4. 阶段-关系系统-stage1范围界定阶段---学习记录
  5. html css入门经典 pdf,CSS入门经典
  6. 关于Xcode上的Other linker flags
  7. 利用营销工具,这家企业从按经验办事的老中医,变为数据化中西医
  8. NotImplementedError: Cannot convert a symbolic Tensor报错与解决
  9. Python网络编程笔记二
  10. 处女座的比赛资格(拓扑排序)
  11. 学习笔记:SSH端口转发的三种方式
  12. linux下下载文件到谷歌云盘,如何使用wget下载谷歌云端硬盘里的文件
  13. 通向AGI(通用人工智能)的另类书单
  14. multisim红绿灯元器件在哪里_实验一:Multisim交通灯仿真.ppt
  15. Python爬虫技术-根据【理财】关键字爬取“巨潮资讯网”的title
  16. C++_基础1.1初识——Hellow world
  17. VLAN基础VLAN间路由联动OSPF实验
  18. [转] Delaunay三角剖分理论知识
  19. LZO基本介绍与调试总结
  20. float取小数点后四位

热门文章

  1. android 自定义组件圆形边框
  2. 我和计算机比本领教案反思,比本领教学反思
  3. 双机软件 ROSE HA安装配置
  4. 建行聚合支付及支付宝二维码开发经验(C语言)
  5. termux使用教程python-Termux折腾记--进阶之python库使用
  6. NFT Insider #69:星巴克将公布基于Web3的忠诚度计划,林俊杰宣布持有蒂芙尼NFT
  7. 2022年湖南省中医执业医师考试第一单元卫生法规(一)
  8. 移动硬盘格式化怎样才能恢复数据
  9. L2tp 虚拟专有网络 (预共享密钥)
  10. A. ABC String.