- Home /
.pngs exported from game are blank.
So, here's the deal:
As part of my player's preferences, I need to keep track of two different .pngs that represent their first and last name in Chinese. So, when they confirm what their name is, I gather the texture 2Ds and send them to a function in my IO script, like so:
playerDataScript.lastNameTexture = lastNameChosen.renderer.material.mainTexture;
playerDataScript.firstNameTexture = firstNameChosen.renderer.material.mainTexture;
playerIOScript.storeChineseName(playerDataScript.firstNameTexture, playerDataScript.lastNameTexture);
And they're sent to my IO script, where they are handled by the following function:
function storeChineseName(firstName : Texture2D, lastName : Texture2D)
{
var myFirstName = firstName;
var myLastName = lastName;
var filePath = Application.persistentDataPath;
// Encode texture into PNG
EditorUtility.CompressTexture(myFirstName, TextureFormat.ARGB32);
EditorUtility.CompressTexture(myLastName, TextureFormat.ARGB32);
var bytes = myFirstName.EncodeToPNG();
var bytes2 = myLastName.EncodeToPNG();
// Write to a file.
File.WriteAllBytes(filePath + "/firstName.png", bytes);
File.WriteAllBytes(filePath + "/lastName.png", bytes2);
}
Unity's told me that I need to encode them to ARGB32. So I've done that with compressTexture. But when I open the .png file unity has made from within the editor, I get errors--and they are completely blank when I open them in Explorer. They are the same size as the original pictures (64 px by 64 px) and they have the correct names, but it's not working, obviously. What am I doing wrong?
Not that it's not possible but do you really want your "player" to download Unity? Because `EditorUtility.CompressTexture` is an Editor function and will only work in the Editor.
Where does the images originally come from? What target-platform? Because for example when you load an image from another foreign url in the webplayer you can't take screenshots anymore... Some more information what you actually do would be helpful.
Bunny83! Thanks for co$$anonymous$$g to my rescue. That's a good point, regarding compressTexture...Thanks for that. I'll use another compression method ins$$anonymous$$d...
The image originally comes from within the project--it's a texture on an object that I'm taking and attempting to export. I'll post some more of the code. I just didn't want to overwhelm you!
If it's an asset in your game, why do you want to export it? Anyways, make sure you imported your image as `isReadable` like mentioned in the `Texture2D.EncodeToPNG` function, so check your import settings and make sure you ticked "Read / Write Enable".
Your answer
![](https://koobas.hobune.stream/wayback/20220613033000im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
EncodeToPNG problem on Android? 1 Answer
Simple Native App WWW Asset Caching System 1 Answer
Streamwriter Access violation 0 Answers
File access in Windows 8? 2 Answers