Family Tree for Lua Save Bitmap Demo

2010-12-29
This short demo provides a function to save a VERGE image reference as a .BMP, and provides a brief example. This is a lua-fication of http://verge-rpg.com/general/tileset-maker/ [code] function WriteFileBitmap24(out_image_handle, filename) img_x = v3.ImageWidth(out_image_handle) img_y = v3.ImageHeight(out_image_handle) if (img_x * img_y) == 0 then return 0 -- Return on bad image end if (img_x * 3 % 4) then img_xtra = 4 - (img_x * 3 % 4) -- Padding needed else img_xtra = 0 -- No padding needed end img_size = ((3 * img_x) + img_xtra) * img_y -- Size of image data in bytes out_file = v3.FileOpen(filename .. '.bmp', v3.FILE_WRITE) if out_file <= 0 then return 0 -- Return on bad path or unopenable file end v3.FileWriteWord(out_file, 19778) -- bfType - Header of 'BM' v3.FileWriteQuad(out_file, 54 + img_size) -- bfSize - File size v3.FileWriteQuad(out_file, 0) -- bfReserved1, bfReserved2 - Two reserved words v3.FileWriteQuad(out_file, 54) -- bfOffBits - Offset to image data v3.FileWriteQuad(out_file, 40) -- biSize - Size of (windows) bitmap info structure v3.FileWriteQuad(out_file, img_x) -- biWidth - Image width v3.FileWriteQuad(out_file, img_y) -- biHeight - Image height v3.FileWriteWord(out_file, 1) -- biPlanes - Err... one v3.FileWriteWord(out_file, 24) -- biBitCount - Bits per pixel v3.FileWriteQuad(out_file, 0) -- biCompression - No compression v3.FileWriteQuad(out_file, img_size) -- biSizeImage - Size of bitmap data v3.FileWriteQuad(out_file, 0) -- biXPelsPerMeter v3.FileWriteQuad(out_file, 0) -- biYPelsPerMeter -- X/YPelsPerMeter specifies the horizontal/vertical resolution, -- in pixels per meter, of the target device for the bitmap. -- An application can use this value to select a bitmap from a resource -- group that best matches the characteristics of the current device. v3.FileWriteQuad(out_file, 0) -- biClrUsed - Not palletted data v3.FileWriteQuad(out_file, 0) -- biClrImportant - All colours important for yi = (img_y - 1), 0, -1 do --Move from bottom of image data up for xi = 0, (img_x-1), 1 do -- Write row of pixels out_pixel = v3.GetPixel(xi, yi, out_image_handle) v3.FileWriteByte(out_file, v3.GetB(out_pixel)) v3.FileWriteByte(out_file, v3.GetG(out_pixel)) v3.FileWriteByte(out_file, v3.GetR(out_pixel)) end -- for xi = img_xtra, 1, -1 do -- Pad to quad width -- v3.FileWriteByte(out_file, 0); -- end end v3.FileClose(out_file); return img_size; end [/code]
Downloads tools

Newest Community Uploads
Update 1.1 for The Phantom's Castle
First title by Xenathor Studios. Xerma discovers activity within the Burning Castle, so he takes up the adventure of getting there to destroy the evil Lord Kartor! Updates will be on this website: http://www.xenathorstudios.com Download Instructions: ...
Lord Holzlarshire is found dead in his own pool at a party. The murderer must be among the guests. But who did it? You play as the detective at the murder scene. I hope that you won't be... (•_•) ( •_•)>=-= (-=_=) Taken for a PoolYEAAAAAAAAAAAAA...
Probably something like an adventure game. Great storytelling. Compelling arts. Outrageous overstatements. Try it!

Ben McGraw's lovingly crafted this website from scratch for years.
It's a lot prettier this go around because of Jon Wofford.
Verge-rpg.com is a member of the lunarnet irc network, and would like to take this opportunity to remind you that regardless how babies taste, it is wrong to eat them.