テクスチャをPNG形式にエンコードします
PNGファイルのバイト配列を返します。\nPNGファイルを取得するためにディスクに書き込むことができます ネットワークやその他のもに送信します。 この機能はARGB32やRGB24へテクスチャフォーマットでのみ動作します。 テクスチャもインポート設定で読み取り可能フラグが設定されている必要があります。 エンコードされたPNGデータ ARGB32のテクスチャ時はアルファルチャンネルが含まれており、RGB24のテクスチャはアルファチャンネルがありません。 PNGデータにはゲームコンレクションやカラープロファイル情報は含まれていません。
// Saves screenshot as PNG file. import System.IO; // Take a shot immediately function Start () { UploadPNG (); } function UploadPNG () { // We should only read the screen buffer after rendering is complete yield WaitForEndOfFrame(); // Create a texture the size of the screen, RGB24 format 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 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); // Create a Web Form var form = new WWWForm(); form.AddField("frameCount", Time.frameCount.ToString()); form.AddBinaryData("fileUpload",bytes); // Upload to a cgi script 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"); } }
See Also: ReadPixels, WaitForEndOfFrame, LoadImage.