Save texture and keep textureformat

In my application the user can create and modify textures of gameobjects at runtime. Before exiting the application, the user should be able to save his/her progress.
To this end, I tried to save the created textures as .pngs via Textures.EncodeToPng(), writing them to a folder and serializing the save path via XML. Now, when loading them in again, the textures do not look exactly the same. My suspicion was that this has to do with different texture formats. The textures created and used at runtime use RGBA32 and Textures.EncodeToPng() encodes them to ARGB8 (i.e. the textures that are loaded back in again in the next session). Does this make sense and how would I go about and fix this?
I am new to this field, so any help would be very much appreciated.

I had never issues like that. ARGB8 isn’t really an option for PNG. I highly doubt that Unity would create an indexed image as the selection of a proper palette is difficult / impossible. The main issue might be that Unity’s creates PNG files without any additional meta data. However when you load external images that contains meta data (like an iCCP profile or a gAMA) Unity will apply them. This will alter the representation inside Unity. We had a similar issue over here. One solution is to load the images without the metadata. You could also try to copy the metadata from your source png to the one you want to save.