I know this might be complex for a new user but - You can load a image (Collision map like you said) and then do MAKE MEMBLOCK FROM IMAGE. (Its easier if its a 32bit depth image... Or your screen is 32bit depth ... I forget BUT..)
Now you have a memblock where the first 12 bytes are about the image:
First 4 Bytes = Unsigned Integer = DWORD = Image Width
Next 4 Bytes = Unsigned Integer = DWORD = Image Height
Next 4 Bytes = Unsigned Integer = DWORD = Image Depth
(pseudo code)
iImgWidth = MEMBLOCK READ DWORD(MemBlockID,0) ` OFFSET ZERO
iImgHeight = MEMBLOCK READ DWORD(MemBlockID,4) ` OFFSET FOUR!!!
iImgDepth = MEMBLOCK READ DWORD(MemBlockID,8) ` OFFSET 8!! :)
Now from OFFSET 12 thru (ImgWidth * ImgHeight * 4) is your picture.
Now that your image is in a memblock - you can delete the image you loaded.
Now you write code that treats the image pixels like an array. Note Each PIXEL is 4 bytes Wide - RGBA (But not in that order) Pixels Are arranged ACROSS, down a row, ACROSS, down a row etc....
This can be useful to manually use a collision map the way you describe.
BatVink knows the RGBA order... and might be more knowledgable here than me and/or explain it better