Salut à tous,
je suis en train de travailler avec Unity3D, un outil de devellopement de jeux 3D destiné a devenir des webplayer. Dans le cadre de ce projet, c'est prévu d'intégrer dans l'application web (qui est un web browser, a la manière de Flash), une solution de capture d'écran intégré. J'ai crée le script qui permet de faire une capture d'écran, de la coder, de créer un formulaire et d'envoyer via un post les données :
var screenShotURL= "http://myhost/stage/screenshot.php";
function Start()
{
lastInterval = Time.realtimeSinceStartup;
frames = 0;
UploadPNG();
}
function UploadPNG()
{
// We should only read the screen after all 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 );
// Create a Web Form
var form = new WWWForm();
form.AddField("frameCount", Time.frameCount.ToString());
form.AddBinaryData("fileUpload", bytes, "screenShot.png", "image/png");
// Upload to a cgi script
var w = WWW(screenShotURL, form);
yield w;
if (w.error != null)
{
print(w.error);
}
else
{
print("Finished Uploading Screenshot");
}
}
en fait, AddBinaryData correspond a ca : (fieldName : string, contents : byte[], fileName : string = null, mimeType : string = null) : void
Maintenant, le script que je dois faire doit récuperer ce qui passe par le formulaire, donc le binarydata, et pouvoir copier cette image sur mon serveur. COmment faire?