- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用以下代码获取屏幕截图。我得到了屏幕截图,但图像上附有黑色填充。这里使用网上找到的截图和去除填充的代码示例:
// requesting permission
MediaProjectionManager projectionManager = (MediaProjectionManager) getSystemService(
Context.MEDIA_PROJECTION_SERVICE);
startActivityForResult(projectionManager.createScreenCaptureIntent(), REQUEST_SCREENSHOT);
// requesting screenshot on successful permission (in onActivityResult)
if (requestCode == REQUEST_SCREENSHOT && resultCode == RESULT_OK) {
MediaProjectionManager projectionManager = (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE);
final MediaProjection mProjection = projectionManager.getMediaProjection(resultCode, data);
Display mDisplay = getWindowManager().getDefaultDisplay();
Point size = new Point();
mDisplay.getSize(size);
final int width = size.x;
final int height = size.y;
final ImageReader mImageReader = ImageReader.newInstance(width, height, PixelFormat.RGBA_8888, 2);
mProjection.createVirtualDisplay("screen-mirror", width, height,
getResources().getDisplayMetrics().densityDpi,
DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY |
DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC, mImageReader.getSurface(),
null, null);
mImageReader.setOnImageAvailableListener(new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader imageReader) {
final Image image = imageReader.acquireLatestImage();
if (image != null) {
mImageReader.setOnImageAvailableListener(null, null);
mProjection.stop();
final Image.Plane[] planes = image.getPlanes();
final ByteBuffer buffer = planes[0].getBuffer();
int pixelStride = planes[0].getPixelStride();
int rowStride = planes[0].getRowStride();
int rowPadding = rowStride - pixelStride * width;
// create bitmap
Bitmap bmp = Bitmap.createBitmap(
width + rowPadding / pixelStride, height, Bitmap.Config.ARGB_8888);
bmp.copyPixelsFromBuffer(buffer);
image.close();
ImageView iv = findViewById(R.id.iv);
iv.setImageBitmap(bmp);
}
}
}, null);
}
最佳答案
首先,您得到的尺寸不正确。您应该更改为:
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getRealSize(size);
然后你应该根据你从缓冲区得到的位图创建另一个位图
Bitmap newBitmap = Bitmap.createBitmap(bmp, 0, 0, mWidth, mHeight);
bmp.recycle();
ImageView iv = findViewById(R.id.iv);
iv.setImageBitmap(newBitmap);
关于java - 使用 MediaProjection API 截取屏幕截图时的额外填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45128431/
下面是split截取获得 ? 1
我正在写一个小编辑。我想更改 QTextEdit 的默认行为,即在 Tab 时插入制表符被击中。相反,我想放 4 个空格。这样做的推荐方法是什么?我想关于子类化 keyPressedEvent ,但也
我正在寻找一种简单的方法来在我的 ASP 页面中截取 iFrame 的屏幕截图。我只是无法用 C# 实现它,而且我缺乏 Javascript 知识!有没有人知道实现这一目标的简单和最佳方法? 我正在尝
这让我感到困惑。 DirectX 绕过所有内容并直接与设备驱动程序对话,因此 GDI 和其他常用方法将不起作用 - 除非 Aero 被禁用(或不可用),否则出现的只是屏幕左上角的黑色矩形。我已经尝试了
我正在开发一个应用程序,当我按下按钮时,我想发送 2 个 View 的 2 个屏幕截图,并将其附加到电子邮件中。 这两个 View Controller 被称为 secondViewControlle
我尝试截取一个用 WPF 编写的应用程序,但应用程序没有被捕获,我是否必须使用特殊工具来截取屏幕截图? 最佳答案 您可以使用 RenderTargetBitmap从 WPF 控件生成图像。 p
以下是我的断言。 Assert.assertEquals(securityQuestionPage.UserName.getText().toString(),BaseClass.unsuccessf
我有一个 ImageView @property (strong, nonatomic) IBOutlet UIImageView *imageView; 我想截图。我的代码占据了整个屏幕。我已经查看
我必须编写一些 javascript 代码来截取网页的屏幕截图,但不能在前台渲染它。首先,这可能吗?我需要使用一些外部库吗?请给我一些想法:) 最佳答案 如果您正在谈论在 Firefox chrome
我想在我的 tableview 屏幕截图图像中包含导航栏。以下代码用于捕获整个 TableView ,我尝试了其他代码来捕获导航栏而不是整个 TableView 。可以同时进行吗? func scre
我使用以下代码截取我的 View : UIGraphicsBeginImageContextWithOptions(containerView.bounds.size, NO, [[UIScreen
我正在开发一个简单的相机应用程序。我有截取整个 Activity 的屏幕截图并将其写入 SD 卡的代码。问题是 Surfaceview 返回黑屏。 我想知道如何独立截取surfaceview的截图。这
基本上我想做的是: 我在页面上有一个 flash 游戏(例如 pacman) 我希望能够使用 javascript 打印该游戏的屏幕 这可能吗?我知道我可以将游戏 swf 包含在另一个 swf 中并使
我正在开发的应用程序使用 Collection View 单元格向用户显示数据。我希望用户能够共享单元格中包含的数据,但通常有太多单元格无法尝试调整大小并适合单个 iPhone 屏幕大小的窗口并获取屏
有人可以分享代码来截取网络浏览器控件的屏幕截图并将其保存在预定路径中。 我正在使用 VS 2008 .Net 3.5。 最佳答案 你可以使用 Control.DrawToBitmap() ,即使它在
在 String 中提供了两个截取字符串的方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容。下面对这两种方法分别进行介绍。 1. substring(int beginIndex
如下所示: ? 1
MySQL字符串的拼接、截取、替换、查找位置。 常用的字符串函数: 函数 说明 CONCAT(s1,s2,...)
我想截取UIView(该 View 将包含签名)并将其保存到应用程序文件中的本地文件中,以便以后调用图像点显示在类似于 UIImageView 的内容中。下面是签名 UIView 背后的代码。 #im
下面的代码是截取当前页面的屏幕截图。 html2canvas中的url可以截图吗?我的意思是我有一个 URL 是 mydomain.com/home mydomain.com/home?id=2 my
我是一名优秀的程序员,十分优秀!