【问题标题】:printing a texture2D to file or as image for debugging purposes将 texture2D 打印到文件或作为图像以进行调试
【发布时间】:2017-12-07 14:25:18
【问题描述】:

我试图弄清楚图像在图像处理操作的几个阶段是如何处理的(它看起来像什么等等),所以我写了以下co-routine 来捕获屏幕截图,但我是不知道如何打印出在不同阶段拍摄的照片(例如png图像

public void CaptureFrame(RectTransform rect)
{
    StartCoroutine( Co_Capture(rect) );
}

private IEnumerator Co_Capture(RectTransform rect)
{
    yield return new WaitForEndOfFrame();

    _texture = new Texture2D( (int)rect.sizeDelta.x, (int)rect.sizeDelta.y );
    _texture.ReadPixels( new Rect( rect.anchoredPosition.x - (rect.sizeDelta.x * 0.5f), rect.anchoredPosition.y - (rect.sizeDelta.y * 0.5f), rect.sizeDelta.x, rect.sizeDelta.y ), 0, 0 );
    _texture.Apply();

    OnImageCaptured( new ScreenShotEventArgs(_texture) );
}

鉴于我将应用程序构建到 Android 设备,理想情况下,我希望将图像保存在某个文件夹中(通过 Unity3D 编辑器)以及例如,在其data 文件夹中的设备上。类似于Debug.Log 的消息,您在不同阶段打印出来以查看代码的哪些部分已到达,等等...

我有什么选择?通过 Unity3D 和 Android 平板保存图像/图片的代码/命令/方法是什么,以便开发人员可以看到不同阶段或处理的图像?

【问题讨论】:

  • 标题和正文都令人困惑。打印图片??对我来说,它看起来就像你想截屏然后保存然后加载它。是这样吗?
  • @Programmer 是的,完全正确。我想我应该使用byte[] debugImage1 = _texture.EncodeToPNG(); 然后File.WriteAllBytes(Application.dataPath + "/../Img1.png", debugImage1); 你同意吗?有更好的选择吗?基本上,我试图在识别文本之前查看 Tesseract 对图像的作用,因此我需要查看 Tess 的各种图像处理步骤的结果。

标签: c# android image unity3d texture2d


【解决方案1】:

您在评论部分得到了一些正确的信息。您使用EncodeToPNG() 将其转换为字节数组,然后使用File.WriteAllBytes 保存。您没有正确的是路径。

如果您希望它在 Android、iOS 和任何平台上运行,您可以使用 save to Application.persistentDataPath。必须将其保存在文件夹中,而不是直接保存到Application.persistentDataPath

所以应该是Application.persistentDataPath+"/yourfoldername/imagename.png"

同样,这个:Application.persistentDataPath+"/imagename.png" 在 iOS 上会失败,因为您尝试直接写入沙箱,而沙箱需要我上面提到的文件夹。

最后,我注意到您正在使用+ 连接路径。避免这样做,而是使用Path.Combine

string tempPath = Path.Combine(Application.persistentDataPath, "yourfoldername");
tempPath = Path.Combine(tempPath, "yourfoldername.png");

【讨论】:

    【解决方案2】:

    这会将纹理作为 Img1.png 保存在所有设备上的有效公共位置。

    File.WriteAllBytes(Path.Combine(Application.persistentDataPath + "Img1.png"), _texture.EncodeToPng());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-28
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多