autojs图片处理

runtime.images.initOpenCvIfNeeded();
importClass(org.opencv.core.CvType);
importClass(org.opencv.core.Scalar);
importClass(org.opencv.core.Point);
importClass(java.util.LinkedList);
importClass(org.opencv.imgproc.Imgproc);
importClass(org.opencv.imgcodecs.Imgcodecs);
importClass(org.opencv.core.Core);
importClass(org.opencv.core.Mat);
importClass(org.opencv.core.MatOfDMatch);
importClass(org.opencv.core.MatOfKeyPoint);
importClass(org.opencv.core.MatOfRect);
importClass(org.opencv.core.Size);
importClass(org.opencv.features2d.DescriptorMatcher);
importClass(org.opencv.features2d.Features2d);
importClass(android.graphics.Matrix);
importClass(org.opencv.android.Utils);
importClass(android.graphics.Bitmap);
importPackage(org.opencv.highgui.Highgui);
importPackage(org.opencv.features2d);
importClass(java.io.File);
importClass(java.io.FileOutputStream);
  • 将mat转bitmap
function mat2bitmap(img) {
 let width = img.width();
 let height = img.height();
 let bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
 Utils.matToBitmap(img, bitmap);
 saveBitmap(bitmap,"/sdcard/de.png")
 //bitmap = zoomBitmap(bitmap,0.5)
 return bitmap;
}
  • 保存图片到手机
function saveBitmap(bitmap,path) {
 threads.start(function(){
  try {
   filePic = new File(path);
   let fos = new FileOutputStream(filePic);
   bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
   fos.flush();
   fos.close();
  } catch (e) {
   console.log(e);
   return;
  }
  console.log("tag", "saveBitmap success: ");
 })

}
  • 可选:缩放bitmap
function zoomBitmap(bitmap, scale) {
 let matrix = new Matrix();
 matrix.postScale(scale, scale); //长和宽放大缩小的比例
 let resizeBmp = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
 return resizeBmp;
}
public File saveBitmap(Bitmap bitmapUse) {
        Log.e("wy", "開始保存");
        //生成一個文件,存儲我們將來拍照的照片
        String sdPath = Environment.getExternalStorageDirectory()
                .getAbsolutePath() + "/a1";
        File file = new File(sdPath);

        Log.e("wy","絕對文件路徑: "+ file.getAbsoluteFile());
        Log.e("wy","文件名: "+ file.getName());
        if (!file.exists()) {
            file.mkdirs();
            Log.e("wy", "創建文件夾,路徑:"+file.getPath());
        }
        String mPath = System.currentTimeMillis() + "";
        Log.e("wy", "保存路徑: " + sdPath);
        File f = new File(sdPath, mPath + ".jpg");
//        File f = new File("/sdcard/namecard/", picName);
        if (f.exists()) {
            f.delete();
        }
        try {
            FileOutputStream out = new FileOutputStream(f);
//            10M
//            bitmapUse.compress(Bitmap.CompressFormat.PNG, 90, out);
//            0.5M
            bitmapUse.compress(Bitmap.CompressFormat.JPEG, 45, out);
            out.flush();
            out.close();
            Log.e("wy", "已經保存");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return f;
    }

 

赞 (0)