Texture2D.EncodeToPNG 编码为PNG


function EncodeToPNG () : byte[]

Description描述

Encodes this texture into PNG format.

将此纹理编码为PNG格式。

The returned byte array is the PNG "file". You   can write them to disk to get the PNG file, send them over the network,   etc.

返回的字节数组是PNG “文件”。你可以把数组写到磁盘上以便得到PNG文件,并通过网络发送它们

This function works only on ARGB32 and RGB24 texture formats. The texture also has to   have Is Readable flag set in the import settings.

这个函数仅在纹理格式为ARGB32和RGA24的情况下工作,并且纹理要要在倒入设置中设置为

Is Readable (可读)

The encoded PNG data will contain alpha channel   for ARGB32 textures, and no alpha channel   for RGB24 textures. PNG data will not contain gamma   correction or color profile information.

ARGB32格式的PNG纹理包含alpha通道信息,RGB24格式的纹理则没有alpha通道信息,PNG数据不包含伽玛修正或颜色配置信息

  • C#

  • JavaScript

还没有添加代码
// Saves screenshot as PNG file.//存储屏幕信息到PNG文件import System.IO;// Take a shot immediately//立即截屏function Start () {UploadPNG ();}function UploadPNG () {// We should only read the screen bufferafter rendering is complete//我们只在渲染完成才读取屏幕缓存yield WaitForEndOfFrame();// Create a texture the size of the screen, RGB24 format//创建一个屏幕大小的纹理,RGB24 位格var width = Screen.width;var height = Screen.height;var tex = new Texture2D (width, height, TextureFormat.RGB24, false);// Read screen contents into the texture//读取屏幕内容到纹理tex.ReadPixels (Rect(0, 0, width, height), 0, 0);tex.Apply ();// Encode texture into PNG//编码纹理为PNG格式var bytes = tex.EncodeToPNG();Destroy (tex);// For testing purposes, also write to a file in the project folder// File.WriteAllBytes(Application.dataPath + "/../SavedScreen.png", bytes);//出于测试目的,也在project folder内写入一个文件// Create a Web Form//创建一个WEB窗体var form = new WWWForm();form.AddField("frameCount", Time.frameCount.ToString());form.AddBinaryData("fileUpload",bytes);// Upload to a cgi script//上传到cgi脚本 var w = WWW("http://localhost/cgi-bin/env.cgi?post", form);yield w;if (w.error != null) {print(w.error);} else {print("Finished Uploading Screenshot");}}

参见: ReadPixels, WaitForEndOfFrame, LoadImage.


,