在后台服务中截屏



我正在尝试制作一个可以截图其他应用程序的bubble应用程序。

我发现这个项目链接有一个媒体投影示例,但图像没有保存到设备上。

有没有办法把这个图片保存到设备上,或者有没有其他方法可以在后台服务中用我的应用程序截图。

我已经检查了链接,我认为有一种方法可以保存截图中的文件。

来自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/要将其保存在Gallery中:(

最新更新