1

このコードは、Facebook 開発者で見つけました。小さな画面では問題なく動作しますが、2000x2000 の画面ではクラッシュします。PNGへのエンコードが多くのメモリを消費するために発生することがわかりました。最初に画面をキャプチャし、www を使用して画像を読み込み、Facebook にアップロードするという別の方法を使用します。問題は、www がバイナリ イメージを使用してアップロードする必要があることです。

  • PNG にエンコードせずに Facebook にアップロードできますか (ローカル ファイルからロードするため)?
  • Facebook API には画像をアップロードする別の方法がありますか?

    yield return new WaitForEndOfFrame();
    
    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(new Rect(0, 0, width, height), 0, 0);
    tex.Apply();
    byte[] screenshot = tex.EncodeToPNG();
    
    var wwwForm = new WWWForm();
    wwwForm.AddBinaryData("image", screenshot, "InteractiveConsole.png");
    
    FB.API("me/photos", Facebook.HttpMethod.POST, Callback, wwwForm);
    
4

0 に答える 0