【发布时间】: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