图片转换

# 图片转换 ## image.saveTo() 保存到文件中 @param img 图片对象 @param path 路径 @return bool true代表成功,false 代表失败 ```javascript function main() { var imageX = image.captureFullScreen(); var r = image.saveTo(imageX,"/sdard/a.png"); toast("result "+r); } main(); ``` ## image.toBase64Format() 转成base64的字符串, jpg格式较小,可以减少内存 @param img 图片对象 @param format 格式 jpg或者 png @param q 质量 1-100,质量越大 越清晰 @return 字符串 ```javascript function main() { var imageX = image.captureFullScreen(); var r = image.toBase64Format(imageX,"jpg",50); toast("result "+r); } main(); ``` ## image.clip() 剪切图片 @param img 图片对象 @param x x起始坐标 @param y y起始坐标 @param ex 终点X坐标 @param ey 终点Y坐标 @return AutoImage 对象或者null ```javascript function main() { var imageX = image.captureFullScreen(); var r = image.clip(imageX,100,100,300,400); toast("result "+r); } main(); ``` ## image.pixel() 取得图片的某个点的颜色值 @param img 图片对象 @param x x坐标点 @param y y坐标点 @return int 颜色值 ```javascript function main() { var imageX = image.captureFullScreen(); var r = image.pixel(imageX,100,100); toast("result "+r); } main(); ``` ## image.recycle() 回收图片 @param img 图片对象 ```javascript function main() { var imageX = image.captureFullScreen(); image.recycle(imageX); } main(); ``` ## image.isRecycled() 是否被回收了 @param img 图片对象 @return bool true代表已经被回收了 ```javascript function main() { var imageX = image.captureFullScreen(); var r = image.isRecycled(imageX); toast("result "+r); } main(); ``` ## image.clipBitmap() 剪裁Bitmap图片,请自行判断参数,正确性 @param bitmap 图片 @param x 开始X坐标 @param y 开始Y坐标 @param w 剪裁宽度 @param h 剪裁高度 @return {Bitmap} 安卓的Bitmap对象 ```javascript function main() { var request = image.requestScreenCapture(10000,0); if (!request) { request = image.requestScreenCapture(10000,0); } logd("申请截图结果... "+request) for (var i = 0; i < 100; i++) { var d =image.captureScreenBitmap("jpg",0,0,0,0,100); logd(d) sleep(1000); if (d) { d= image.clipBitmap(d,100,100,200,200); var ds = image.bitmapBase64(d,"jpg",100); logd(ds) loge(image.base64Bitmap(ds,0)) } } } main(); ``` ## image.base64Bitmap() base64字符串转为Bitmap图片 @param data base64 数据 @param flag base64格式的标示,一般为0, 可选参数为 :0 默认, 1 无填充模式,2 无换行模式,4 换行模式 @return {Bitmap} 安卓的Bitmap对象 ```javascript function main() { var request = image.requestScreenCapture(10000,0); if (!request) { request = image.requestScreenCapture(10000,0); } logd("申请截图结果... "+request) for (var i = 0; i < 100; i++) { var d =image.captureScreenBitmap("jpg",0,0,0,0,100); logd(d) sleep(1000); if (d) { d= image.clipBitmap(d,100,100,200,200); var ds = image.bitmapBase64(d,"jpg",100); logd(ds) loge(image.base64Bitmap(ds,0)) } } } main(); ``` ## image.bitmapBase64() bitmap转为base64 @param bitmap 图片 @param format 格式,jpg或者png @param q 质量 1 - 100 @return {string} base64字符串 ```javascript function main() { var request = image.requestScreenCapture(10000,0); if (!request) { request = image.requestScreenCapture(10000,0); } logd("申请截图结果... "+request) for (var i = 0; i < 100; i++) { var d =image.captureScreenBitmap("jpg",0,0,0,0,100); logd(d) sleep(1000); if (d) { d= image.clipBitmap(d,100,100,200,200); var ds = image.bitmapBase64(d,"jpg",100); logd(ds) loge(image.base64Bitmap(ds,0)) } } } main(); ``` ## image.imageToBitmap() 将AutoImage转换为安卓原生的Bitmap对象 @param img {AutoImage} @return {Bitmap} 对象 ```javascript function main() { var request = image.requestScreenCapture(10000,0); if (!request) { request = image.requestScreenCapture(10000,0); } logd("申请截图结果... "+request) for (var i = 0; i < 100; i++) { var d =image.captureFullScreenEx("jpg",0,0,0,0,100); logd(d) sleep(1000); if (d) { var ds= image.imageToBitmap(d); logd(ds) ds.recycle(); image.recyle(d); } } } main(); ``` ## 例子 #### EC调用OPENCV 二值化 ```js //这里的代码是java 翻译为JS的 function opencvtest(){ importPackage(android.graphics) importPackage(org.opencv.core) importPackage(org.opencv.android) importPackage(org.opencv.imgproc) importPackage(java.io) //读取SDcard的文件 var orgBitmap = BitmapFactory.decodeFile("/sdcard/aa.png"); var mGray = new Mat(); var mGray2 = new Mat(); Utils.bitmapToMat(orgBitmap, mGray2); Imgproc.cvtColor(mGray2, mGray, Imgproc.COLOR_BGR2GRAY); var ret = new Mat(); Imgproc.threshold(mGray, ret, 127, 255, Imgproc.THRESH_BINARY_INV); var bitmap = Bitmap.createBitmap(ret.width(), ret.height(), Bitmap.Config.ARGB_8888); Utils.matToBitmap(ret, bitmap); //保存到文件中 try { bitmap.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream("/sdcard/bb3b.png")); } catch ( e) { logd(e) } } opencvtest(); ```