Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EncodeToWebP flips the texture #25

Closed
zerg4000 opened this issue Jul 27, 2020 · 2 comments
Closed

EncodeToWebP flips the texture #25

zerg4000 opened this issue Jul 27, 2020 · 2 comments

Comments

@zerg4000
Copy link

zerg4000 commented Jul 27, 2020

After EncodeToWebP result image wrong
shot-006

`var textasset = Resources.Load ("webp");
var bytes = textasset.bytes;

Error lError;
Texture2D texture = Texture2DExt.CreateTexture2DFromWebP(bytes, lMipmaps: true, lLinear: true, lError: out lError);

if (lError == Error.Success) {
image2.texture = texture;
} else {
Debug.LogError("Webp Load Error : " + lError.ToString());
}

RenderTexture tmp = RenderTexture.GetTemporary(
texture.width,
texture.height,
0,
RenderTextureFormat.Default,
RenderTextureReadWrite.Linear);

// Blit the pixels on texture to the RenderTexture
Graphics.Blit(texture, tmp);
// Backup the currently set RenderTexture
RenderTexture previous = RenderTexture.active;
// Set the current RenderTexture to the temporary one we created
RenderTexture.active = tmp;

// Create a new readable Texture2D to copy the pixels to it
Texture2D myTexture2D = new Texture2D(texture.width, texture.height);

// Copy the pixels from the RenderTexture to the new Texture
myTexture2D.ReadPixels(new Rect(0, 0, tmp.width, tmp.height), 0, 0);
myTexture2D.Apply();

// Reset the active RenderTexture
RenderTexture.active = previous;

// Release the temporary RenderTexture
RenderTexture.ReleaseTemporary(tmp);

// "myTexture2D" now has the same pixels from "texture" and it's readable.

string fExport = Application.dataPath + "/test.webp";
byte[] bExport = myTexture2D.EncodeToWebP(25, out lError);
File.WriteAllBytes(fExport, bExport);`

@netpyoung
Copy link
Owner

That is problem to using webp on unity.
Unity's texture need to flip updown.

To archive that flip like that

or using advanced config with WebPEncode API

https://developers.google.com/speed/webp/docs/api

@netpyoung
Copy link
Owner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants