It's been a while since I've been able to work with any Dark GDK stuff so I'm a bit off. Best advice I can give you from, mostly memory, is to look in the DarkGDKImage.h file for some undocumented functions.
void dbGetImageData ( int iID, DWORD* dwWidth, DWORD* dwHeight, DWORD* dwDepth, LPSTR* pData, DWORD* dwDataSize, bool bLockData )
gets the information about the data you want. You'll have to dig for some of it as it's not at my fingertips at the moment.
LPDIRECT3DTEXTURE9 dbGetImagePointer ( int iID )
gets you a pointer to the data.
You'll find that the data is of type DWORD where the first, most significant byte, is the alpha data which should always be 255 or 0FFh for totally opaque. The next bytes are red, green and blue in descending order.
Be careful of the pitch since that's the actual width of the image even if it's not the visible width.
I've been able to use this information to copy all of the bitmap operations over to images in an Image class and added a few more of my own.
But in order to use it efficiently and safely you'll want to study up on some of Direct X. It's especially important to know how to lock the memory before manipulating the data.
Lilith, Night Butterfly
I'm not a programmer but I play one in the office