【发布时间】:2014-12-01 04:04:40
【问题描述】:
我正在尝试截屏并将其保存到 jpg 格式的文件中。我正在关注这个例子。
http://docs.unity3d.com/ScriptReference/Texture2D.EncodeToPNG.html
这是我目前所拥有的:
string jpgFile = Application.persistentDataPath + "/scrn-1.jpg";
Texture2D tex = new Texture2D (Screen.width, Screen.height);
tex.ReadPixels (new Rect(0, 0, Screen.width, Screen.height), 0, 0);
tex.Apply ();
var bytes = tex.EncodeToJPG();
Destroy (tex);
System.IO.File.WriteAllBytes(jpgFile, bytes);
我发现在 iOS 上的 Unity 中运行它会给我:
JPEG 参数结构不匹配:库认为大小为 372,调用者预期为 360
但是,如果我将转换更改为 tex.EncodeToPNG();并将文件名更改为 .png 一切正常。我不确定如何进行任何帮助将不胜感激。谢谢。
【问题讨论】:
-
你也试过Game Dev Exchange吗?
-
我没有。我会尽快在那里复制一份。谢谢。
-
您已将其标记为“ios”,因此我假设您正在运行某种类型的 Apple 手持设备。您是否尝试过同时按下主页和电源按钮? ;)
-
哈哈,我需要能够以编程方式完成所有工作。我将在生成此图像文件后将其传递给 Android 和 iOS 本机代码。感谢您的输入。我将添加另一个标签。
-
我假设 Unity 是针对
libjpeg动态构建的,如果是这种情况,在 Unity 发布修复程序之前问题不会解决(您是最新的吗?)。另外,您不能使用 .png 有什么原因吗?
标签: c# android ios unity3d texture2d