Thanks all for the inputs.
@Dave: Thanks for the dpi explanation, and actually the pointer that as far as the screen and image goes, this should have no bearing.
I’ve looked into it, and especially this AlphaChannel business. Remember I mentioned that on the Console app it is reported as Picture.HasAlphaChannel = True and on Desktop = False. Well I studied that a bit more and it seems there is a huge difference because when you open the file on Desktop, it does a premultiply of the alpha value with the RGBs, but when you open under console app, then it doesn’t.
So I tested it and the results were:
Console: Picture.RGBSurface.Pixel(1,1) = &cC6CABC00
and Picture.RGBSurface.Pixel(1,1).(Red,Green,Blue,Alpha) = (198, 202, 188, 0)
Desktop: Picture.RGBSurface.Pixel(1,1) = &cBABFAE00
and Picture.RGBSurface.Pixel(1,1).(Red,Green,Blue,Alpha) = (186, 191, 174, 0)
From what I understand the premultiply of the alpha is an adjustment to ensure the actual RGB pixels can be transferred to the graphic processor faster, so it is multiplied because the expectation is that the image will be shown on the screen at some stage. In the case of the console app, there is no chance of it being shown, therefore not needed. (my own thinking here)
I’ve also read that the multiplication process is a lossy process, so you cannot reverse it. But I assume it can be applied in one direction. So lets say it was already done to the Desktop Pixels, then I can also do it to the Console pixels and should always get the same result.
In anyway the difference is (R,G,B) = (12,11,14) between the 2 environments for the pixel shown above. But the alpha was reported as 0. So what was it multiplied with? It was (0,9393939…, 0.9455445…, 0.9255319…). So this gives no clue how to always treat and get the reversal. I tested this on 100 pixels and just compared the Red values, and found some inconsistencies, like when Red is 181, the Desktop red could be 169 or 165, or Console 184 gives Desktop 170 or 172. And alpha always shows as just 0. It seems there is something else which determines the resulting value.
Anybody who can shed light on this?
And anybody who can advise how to move this to another topic because this is really about the Alphachannel issue rather than the Horizontal Resolution.