The problem with the GET IMAGE command is that if your image has various levels of transparency in it, when you use GET IMAGE all transparency is lost. You could use SET IMAGE COLORKEY but that only gets rid of the completely transparent areas and not the partially transparent bits.
So I've updated the command to allow you to do this.
Well ... kind of.
Sadly I don't know other languages so I can't turn this into a DLL

Anyway, here is a function that will grab an area of an image and retain transparency.
Syntax: GetImage(Image Number,New Image Number, Left, Top, Width, Height)
Enjoy
`Get Image With Transparency
`======================
`©Craig McFarlane
`======================
`Written 9th May 2005
function GetImage(Image1,NewImage,Xstart,Ystart,Xsize as dword,Ysize as dword)
`Find unused memblocks
Memblock1 = 1
repeat
inc Memblock1
until memblock exist(Memblock1) = 0
NewMemblock = 2
repeat
inc NewMemblock
until memblock exist(NewMemblock) = 0
`Set up variables
Width as Dword
Height as Dword
Depth as Dword
Red as Byte
Green as Byte
Blue as Byte
Alpha as Byte
`Do it!
make memblock from image Memblock1,Image1
Width = memblock dword(Memblock1,0)
Height = memblock dword(Memblock1,4)
Depth = memblock dword(Memblock1,8)
make memblock NewMemblock,(Width*Height)+12
Write memblock Dword NewMemblock,0,Xsize
Write memblock Dword NewMemblock,4,Ysize
Write memblock Dword NewMemblock,8,Depth
Position = (Width * (Ystart)*4) + (Xstart*4) + 12
NewPosition = 12
for y = 1 to Ysize
for x = 1 to Xsize
Blue = memblock byte(Memblock1,Position)
Green = memblock byte(Memblock1,Position+1)
Red = memblock byte(Memblock1,Position+2)
Alpha = memblock byte(Memblock1, Position+3)
write memblock byte NewMemblock,NewPosition,Blue
write memblock byte NewMemblock,NewPosition+1,Green
write memblock byte NewMemblock,NewPosition+2,Red
write memblock byte NewMemblock,NewPosition+3,Alpha
inc Position,4
Inc NewPosition,4
next x
inc Position , (width*4) - (Xsize*4)
next y
make image from memblock NewImage,NewMemblock
delete memblock Memblock1
delete memblock NewMemblock
endfunction

Coder formerly known as
Scraggle