Common AlphaBitmap manipulations in Scol » History » Revision 1
Revision 1/2
| Next »
iri, 09/26/2012 01:10 AM
Common AlphaBitmap manipulations in Scol¶
An AlphaBitmap Scol object is a bitmap with an alpha channel. This alpha can be nil.
It can be created from a bitmap object or it can be loaded from a PNG resource file.
All functions of this API are described here.
Create an AlphaBitmap¶
The ObjBitmap8 object¶
This is 8-bits bitmap object insteaf of the 24-bits for the ObjBitmap. Lonely, it is rarely used but it can be an alpha channel.
This API is near than the ObjBitmap API, see Common bitmap manipulations in Scol.
We can create it from a resource file (8-bits BMP file, _LDbitmap8) or from ex-nihilo (_CRbitmap8). Like ObjBitmap, don't forget to destroy them when you no longer needed (_DSbitmap8).
AlphaBitmap¶
The AlphaBitmap type is an opaque Scol type.
Use the Scol function _CRalphaBitmap or _LDalphaBitmap to create a such object.
AlphaBitmap _CRalphaBitmap <channel> <bitmap_object> <bitmap8_object> <background_color> <transparency_color>
The <bitmap_object> is in 24-bits (RVB), <bitmap8_object> is in 8-bits and it is the alpha channel.
See _CRalphaBitmap
@AlphaBitmap _LDalphaBitmap <channel> <reference_reading_png_file>
Destruction¶
When a such object is no longer needed, you should quickly destroy it with _DSalphaBitmap.
How to load a graphic resource file in Scol ?¶
Two near ways enough near if you want to have an ObjBitmap or an AlphaBitmap.
This function is helpful and you should get in your common library.
/*
Load a graphic resource file
pfile : P : the reading-reference file
channel : channel to loading
return the object to create
fun [P Chn] ObjBitmap
fun [P Chn] AlphaBitmap
*/
fun loadRscFile2ObjBitmap (pFile, channel)=
if pFile == nil then
nil
else
let _LDbitmap channel pFile -> bmp in
if bmp == nil then
let _LDjpeg channel pFile -> jpeg in
if jpeg == nil then
let _LDtga channel pFile -> tga in
if tga == nil then
let _GETalphaBitmaps _LDalphaBitmap channel pFile -> [png _] in
png
else
tga
else
jpeg
else
bmp;;
fun loadRscFile2AlphaBitmap (pFile, channel)=
if pFile == nil then
nil
else
let _LDbitmap channel pFile -> bmp in
if bmp == nil then
let _LDjpeg channel pFile -> jpeg in
if jpeg == nil then
let _LDtga channel pFile -> tga in
if tga == nil then
_LDalphaBitmap channel pFile
else
_CRalphaBitmap channel tga nil nil nil
else
_CRalphaBitmap channel jpeg nil nil nil
else
_CRalphaBitmap channel bmp nil nil nil;;
Updated by iri about 13 years ago · 2 revisions