java在后台服务中截图

nfeuvbwi  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(532)

我正在尝试做一个泡沫应用程序,采取其他应用程序的屏幕截图。
我发现这个项目链接与媒体投影样本,但图像没有保存到设备。
有没有一种方法可以将此图像保存到设备上,或者有没有其他方法可以在后台服务中使用我的应用截图。

neekobn8

neekobn81#

我检查了链接,我想有办法保存截图上的文件,
ImageTransmogrifier

@Override
  public void onImageAvailable(ImageReader reader) {
    final Image image=imageReader.acquireLatestImage();

    if (image!=null) {
      Image.Plane[] planes=image.getPlanes();
      ByteBuffer buffer=planes[0].getBuffer();
      int pixelStride=planes[0].getPixelStride();
      int rowStride=planes[0].getRowStride();
      int rowPadding=rowStride - pixelStride * width;
      int bitmapWidth=width + rowPadding / pixelStride;

      if (latestBitmap == null ||
          latestBitmap.getWidth() != bitmapWidth ||
          latestBitmap.getHeight() != height) {
        if (latestBitmap != null) {
          latestBitmap.recycle();
        }

        latestBitmap=Bitmap.createBitmap(bitmapWidth,
            height, Bitmap.Config.ARGB_8888);
      }

      latestBitmap.copyPixelsFromBuffer(buffer);
      image.close();

      ByteArrayOutputStream baos=new ByteArrayOutputStream();
      Bitmap cropped=Bitmap.createBitmap(latestBitmap, 0, 0,
        width, height);

      cropped.compress(Bitmap.CompressFormat.PNG, 100, baos);

      byte[] newPng=baos.toByteArray();

      svc.processImage(newPng);
    }
  }

你可以注意到 latestBitmap 对象,从这里您可以实际将此位图保存到您要保存的任何位置,例如,您可以引用此链接https://www.simplifiedcoding.net/android-save-bitmap-to-gallery/ 为了节省你的勇气:)

相关问题