It seems like the colors on the right are the “true” colors, but the PNG file contains some sort of “filter” that enhances the saturation but only gets recognised by certain software including Photoshop.
Point is, I’d like to work with Photoshop and see the actual final result, and I’d like to make it so that the result is consistent across different softwares as much as possible (of course different computers or devices are going to change the colors ever so slightly, but when it happens on the same PC, and even in two different views of the same software, there’s something going on!).
The above images are screenshots.
It’s called a color profile. It tells the computer how the color should actually be interpreted so that the color is consistent from machine to machine and system to system. In fact the other software are wrong and Photoshop and image viewer are right.
For the color profile to work as meant your monitor needs to be profiled and/or calibrated by a hardware calibrator. All monitors will otherwise show different color*. On top of this all other applications need to be profile aware. This is not often the case.
Dealing with non managed imaging systems. Most systems assume sRGB by default so if the images profile is something else you should do a profile to profile conversion to sRGB (either use save for web or edit convert to profile). Photoshop can in fact emulate the other applications but its best not to go there since that would defeat the point. Quite literally non manged systems mean random color.
*: It’s best not to get very pedantic about this. Most monitors in existence are not calibrated so color comes out rather randomly. So don’t spend too much time fighting this thing. Just understand that the color variance is in that range.