Originally I thought this was linked to this:
http://forum.thegamecreators.com/?m=forum_view&t=203887&b=41
After further investigation I'm no longer convinced it is the same problem.
If you Draw a sprite to the back buffer and use GetImage the transparency values seem to be shifted to more transparent. This results in a loss of the image's data by quite a bit and makes it difficult to make good looking sprites from GetImage()
I have tried this with Min/Mag filters on linear and average, but the result is the same. It would be great if I'm doing something wrong because I'd really like to use GetImage() to procedurally make sprites.
SetClearColor(0,0,0)
LoadImage(10,"transtestbg.png")
CreateSprite(10,10)
CreateSprite(11,10)
SetSpriteSize(10,50,100)
SetSpriteSize(11,50,100)
SetSpritePosition(10,0,0)
SetSpritePosition(10,50,0)
LoadImage(1,"transtest.png")
CreateSprite(1,1)
SetSpriteSize(1,50,100)
SetSpritePosition(1,0,0)
ClearScreen()
DrawSprite(1)
img = GetImage(0,0,50,100)
ClearScreen()
CreateSprite(2,img)
SetSpriteSize(2,50,100)
SetSpritePosition(2,50,0)
repeat
Sync()
until GetPointerPressed() = 1
Sample images attached.
I've confirmed this result in 1076, 1088, and 1089.
The screenshot is from 1076 where we can also see some interesting gap above the sprite. This does not occur in 1088 and 1089.
Left is the original --- Right is the GetImage result
Both are overlayed onto a green line to further highlight the issue.
If anyone else gets a different result or knows if I'm doing something wrong, please let me know. Otherwise I'll submit this as a bug.
Cheers!