Articles of 截图

Unity CaptureScreenshot也可以捕捉和编辑

我试图创建一些截图,但ScreenCapture.CaptureScreenshot实际上捕捉整个编辑器,而不仅仅是游戏视图。 我在这里使用这几行代码: public class ScreenShotTaker : MonoBehaviour { public KeyCode takeScreenshotKey = KeyCode.S; public int screenshotCount = 0; private void Update() { if (Input.GetKeyDown(takeScreenshotKey)) { ScreenCapture.CaptureScreenshot("Screenshots/" + "_" + screenshotCount + "_"+ Screen.width + "X" + Screen.height + "" + ".png"); Debug.Log("Screenshot taken."); } } } 可能是什么问题?

使用D3DX10SaveTextureToFile()拍摄MSAA截图

我有一些截图代码(粘贴在下面),这是工作正常,直到我启用MSAA。 我第一次尝试使用这个代码,它抱怨我创建的纹理需要匹配源纹理的样本数量。 很好 – 我的MSAA值是8,所以我把截屏纹理设置为8的样本数。 现在当我尝试使用代码时,它抱怨: 错误:ID3D10Device :: CreateTexture2D:多重采样的Texture2D不能绑定到graphics管道的某些部分,但必须至less设置一个BindFlags位。 在这种情况下,不能设置以下BindFlags位(0):D3D10_BIND_VERTEX_BUFFER(0),D3D10_BIND_INDEX_BUFFER(0),D3D10_BIND_CONSTANT_BUFFER(0),D3D10_BIND_STREAM_OUTPUT(0) 注意 – 这发生在我调用CreateTexture2D()时。 但是,如果我提示并尝试使用我创建的纹理(例如D3D10_BIND_RENDER_TARGET)的BindFlag,则在调用D3DX10SaveTextureToFile()时会得到完全相同的错误消息。 这里是代码: ID3D10Resource* pScreen; mpRenderTargetView->GetResource( &pScreen ); HRESULT hr; D3D10_TEXTURE2D_DESC texDesc; texDesc.ArraySize = 1; texDesc.BindFlags = D3D10_BIND_RENDER_TARGET; texDesc.CPUAccessFlags = 0; texDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; texDesc.Width = (unsigned int)mWindowSize.x; texDesc.Height = (unsigned int)mWindowSize.y; texDesc.MipLevels = 1; texDesc.MiscFlags = 0; texDesc.SampleDesc.Count = 8; texDesc.SampleDesc.Quality = […]

针对4英寸,7英寸和10英寸屏幕添加屏幕截图

我的老板邀请我,现在分配我作为Google Play应用的发布者。 我有一个7英寸的Google Nexus 7平板电脑,可以截取我制作和发布的任何一个示例项目的屏幕截图,并将其上传到7英寸屏幕截图部分。 现在,我想截取一些截图并将其发布到4英寸截图部分。 不过,我有一款运行在Android ICS上的4.5英寸智能手机。 我在想。 如果我使用从4.5英寸屏幕截图中获取的所有快照,或者像像素的宽度和高度有特定的要求,我张贴在4英寸屏幕截图部分是否有效?

从相机问题截图

我使用下面的脚本从相机截图。 这工作正常。 但是,当我再次截图(多次按k)时,其旧图像不能从内存中清除,并且一遍又一遍地重复绘制相同的图像。 如果对象在多次截图的同时移动,则图像将在同一图像中的每一帧中将所有帧合并为一个图像。 我该怎么办才能解决这个问题? using UnityEngine; using System.Collections; public class HiResScreenShots : MonoBehaviour { public int resWidth = 2550; public int resHeight = 3300; private bool takeHiResShot = true; public static string ScreenShotName(int width, int height) { return string.Format("{0}/screenshots/screen_{1}x{2}_{3}.png", Application.dataPath, width, height, System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss")); } public void TakeHiResShot() { takeHiResShot = true; } void LateUpdate() […]

从Unity游戏的Android应用程序上分享图像

当玩家死亡时,我在游戏中截取了屏幕截图。 我有下面的代码捕获屏幕截图。 RenderTexture rt = new RenderTexture (800, 600, 24); MainCamera.targetTexture = rt; Texture2D texture = new Texture2D (800, 600, TextureFormat.RGB24, false); MainCamera.Render (); RenderTexture.active = rt; texture.ReadPixels (new Rect (0, 0, 800, 600), 0, 0); MainCamera.targetTexture = null; RenderTexture.active = null; Destroy (rt); byte[] bytes = texture.EncodeToPNG (); Directory.CreateDirectory (Application.persistentDataPath + "/GameOverScreenShot"); File.WriteAllBytes (Application.persistentDataPath […]

使用robovm和libgdx,截图始终以iOS上的白色图像forms返回

我正在尝试在社交媒体上分享截图。 此代码适用于我的桌面项目,但是当我在iOS上使用它时,它始终显示为白色图像,我使用标准的libgdx代码作为截图工厂,有什么建议吗? public class ScreenShotFactory { public static void SaveScreenshot() { try { Gdx.files.local("shot.png").delete(); FileHandle fh; do { fh = new FileHandle(Gdx.files.getLocalStoragePath() + "shot.png"); } while (fh.exists()); Pixmap pixmap = getScreenshot(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), true); PixmapIO.writePNG(fh, pixmap); pixmap.dispose(); } catch (Exception e) { } } private static Pixmap getScreenshot(int x, int y, int w, int […]

为Unity游戏捕获高分辨率的屏幕截图

我正在做一个手机游戏。 我们需要一些高清屏幕快照在我们的新闻资料袋中使用 。 我想知道,我们如何在Unity编辑器中捕捉高清屏幕截图。 分辨率必须支持我们用来在本地游戏博览会上展示我们的游戏的横幅打印质量 。

统一 – 从各种分辨率获取截图

要将我的应用上传到Google Play,我需要提供各种屏幕截图。 事情是,我只有一个平板电脑,没有电话,我不想虚拟化一堆设备。 有没有办法创建不同大小的截图? 就像7“1280X720平板电脑看到的一样?

如何使用directX的Java截图

我正在寻找一种方式来使用任何正在运行的directX游戏的Java应用程序截图。 我使用下面的代码 Robot robot = new Robot(); GraphicsConfiguration config = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration(); BufferedImage screenshot = robot.createScreenCapture(config.getBounds()); ImageIO.write(screenshot,"png", file); 除了directX游戏,这个游戏完全可以在任何地方使用 我不太熟悉Java,更不用说使用DirectX,我只是想调整这个代码。 我google了很多,但一切都导致了我已经有了相同的代码。 你知道另一种截取DirectX游戏截图的方法吗? 谢谢。

在Unity中,在Android设备上,CaptureScreenshot正在写入电话,但却持续地连接到外部卡

我正在使用CaptureScreentshot()来获取图像。 但是,当我尝试访问它在Android设备上,它给了我: Could not find file "/storage/emulated/0/Android/data/appname/screenshot.png" Android/ Could not find file "/storage/emulated/0/Android/data/appname/screenshot.png" 当我去外部存储,它不在那里,而是在电话存储。 那么为什么persistentdatapath访问不同的东西呢? 我的代码如下: byte[] Bytes_File = System.IO.File.ReadAllBytes(currentScreenshotPathname); 与使用获得的path名: currentScreenshotPathname = System.IO.Path.Combine(Application.persistentDataPath, currentScreenshotName); 有没有办法使PersistenDataPath去电话存储,而不是模拟读取文件? 我已经尝试在播放器设置WriteAccess WriteAccess WriteAccess更改为External以及Internal ,但它仍然是一样的。 编辑:这是发生了什么:PersistentDataPath是/存储/模拟/ 0 / Android /数据/ myapp /文件/,但屏幕截图正在保存到/ mnt / sdcard / Android / data / myapp /文件,尽管文档说明应该保存到PersistentDataPath。