图片转换
# 图片转换
## 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();
```