Vuforia 收藏本版 已有9人收藏 +发表新主题
查看: 23759|回复: 0
打印 上一主题 下一主题

[分享] Application.CaptureScreenshot方法来截图保存到文件系统作为PNG

[复制链接]

[分享] Application.CaptureScreenshot方法来截图保存到文件系统作为PNG

我要做儿童图书 发表于 2016-1-15 09:42:14 浏览:  23759 回复:  0 只看该作者 复制链接
http://docs.unity3d.com/ScriptRe ... tureScreenshot.html

屏幕截图应包含摄像机图像和增强,只要这个方法被调用后,现场有机会呈现的一切。下面是来自OnGUI方法调用它的一个例子:
  1. void OnGUI() {
  2.   if (GUI.Button (new Rect(50,50,150,30), "Capture")) {
  3.     string filename = "shot.png";
  4. 对于这项工作在Android上,写访问需要被设置为“ 外部(SD卡)中的” 播放器设置。该文件最终会在设备中存储路径,在/storage/sdcard0/Android/data/<bundle id>/files,这也对应了统一的API返回的路径Application.persistentDataPath。

  5. 例如,如果你的截图文件名 ​​是“screenshot.png”,和你的包ID是“com.myorg.myproject”,该文件将保存在:

  6. /storage/sdcard0/Android/data/com.myorg.myproject/files/screenshot.png

  7. 或(等效):

  8. /sdcard/Android/data/com.myorg.myproject/files/screenshot.png

  9. 在iOS上,该文件最终会在应用程序文件夹。要访问此文件夹从iTunes,你需要的UIFileSharingEnabled键添加到您的Info.plist文件(在Xcode项目统一创建)。

  10. ReadPixels
  11. 如果不需要写截图出为png,它可能是优选的阅读屏幕像素到使用Texture2D.ReadPixels方法Texture2D对象。下面是来自OnGUI方法调用它的一个例子:

  12.    [code]private Texture2D m_Texture;

  13. void Start() {
  14.     m_Texture = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, true);
  15. }

  16. void OnGUI() {
  17.     if (GUI.Button(new Rect(20, 20, 150, 100), "ReadPixels")) {
  18.         m_Texture.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0, true);
  19.         m_Texture.Apply();
  20.     }
  21. }
复制代码

像Application.CaptureScreenshot,这种方法应该同时捕获摄像机图像和增强,以及其他任何渲染到屏幕上(如UI元素)。

使用RenderTextures
绘制的场景到纹理另一种选择是使用统一渲染纹理。您可以设置任何相机渲染到纹理,而不是渲染到屏幕上(请参阅检查目标纹理场)。需要注意的是,如果你也想渲染到屏幕上的内容,您将需要使用第二个摄像头所绘制的第一个相机所​​创建的质感。不幸的是,这种做法都不对摄像画面的渲染纹理。如果您将ARCamera目标到渲染纹理,增广将显示在黑色背景之上。这是因为相机的图像呈现本地使用直接OpenGL调用(因为性能原因)。为了解决这个问题,你就可以开始与BackgroundTextureAccess样品​​和使用Texture2D对象渲染的摄像机图像。按照中的Readme.txt说明使用ARCamera渲染摄像机图像:“停用BackgroundCamera(和它的子对象),并激活ARCamera的VideoBackground子” 现在一切都内统一渲染使用标准的管道,以及渲染纹理应与ARCamera预期。
分享至:
| 人收藏
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2013-2017 ARinChina-增强现实中国技术论坛   All Rights Reserved.