Quantcast
Channel: Questions in topic: "web player"
Viewing all articles
Browse latest Browse all 531

Workaround for Image.FromStream(tmpStream); in Webplayer for gif files

$
0
0
Hi! This works in the Unity Editor, but when I compile it in Webplayer plattform and open it in firefox, I get the Error, that System.Runtime.InteropServices.ComTypes.IStream namespace is not available. So Webplayer not supports several namespaces in System.Drawing.dll. This line throws an exception: var gifImage = Image.FromStream(tmpStream); Can anyone give me a workaround for that? I guess I need a parser to convert bytes into an Image instance. Full souce code: /// /// Loads the image via WWW class. /// /// /// Path. IEnumerator LoadImageWWW(string path) { // Start web request WWW req = new WWW (ConvertToUrlFriendly(path)); // Wait for answer yield return req; // Did an error appear during loading? if (req.error != null) // Log error and skip this file Debug.LogError (req.error); else { // Creates Stream MemoryStream tmpStream = new MemoryStream(req.bytes); // Initialize gif function var gifImage = Image.FromStream(tmpStream); drawPosition = new Vector2 (centerPosition.x-gifImage.Width/2.0f,centerPosition.y-gifImage.Height/2.0f); var dimension = new FrameDimension(gifImage.FrameDimensionsList[0]); int frameCount = gifImage.GetFrameCount(dimension); for (int i = 0; i < frameCount; i++) { gifImage.SelectActiveFrame(dimension, i); var frame = new Bitmap(gifImage.Width, gifImage.Height); System.Drawing.Graphics.FromImage(frame).DrawImage(gifImage, Point.Empty); var frameTexture = new Texture2D(frame.Width, frame.Height); for (int x = 0; x < frame.Width; x++) for (int y = 0; y < frame.Height; y++) { System.Drawing.Color sourceColor = frame.GetPixel(x, y); frameTexture.SetPixel(x, frame.Height -1 - y, new Color32(sourceColor.R, sourceColor.G, sourceColor.B, sourceColor.A)); // for some reason, x is flipped } frameTexture.Apply(); gifFrames.Add(frameTexture); } } } Thank you in advance!

Viewing all articles
Browse latest Browse all 531

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>