我正在尝试做一个泡沫应用程序,采取其他应用程序的屏幕截图。我发现这个项目链接与媒体投影样本,但图像没有保存到设备。有没有一种方法可以将此图像保存到设备上,或者有没有其他方法可以在后台服务中使用我的应用截图。
neekobn81#
我检查了链接,我想有办法保存截图上的文件,从 ImageTransmogrifier 班
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/ 为了节省你的勇气:)
latestBitmap
1条答案
按热度按时间neekobn81#
我检查了链接,我想有办法保存截图上的文件,
从
ImageTransmogrifier
班你可以注意到
latestBitmap
对象,从这里您可以实际将此位图保存到您要保存的任何位置,例如,您可以引用此链接https://www.simplifiedcoding.net/android-save-bitmap-to-gallery/ 为了节省你的勇气:)