bmap_create(STRING* name): BMAP*

bmap_createpart(STRING* name, var x, var y, var width, var height): BMAP* A8.11

bmap_createblack(var width, var height, var format): BMAP*

Erstellt eine bmap zur Laufzeit. bmap_create lädt den Inhalt aus einer Bilddatei oder dem Ausschnitt eines Bildes, bmap_createblack erzeugt eine schwarze Bitmap mit vorgegebenen Dimensionen. Auf diese Weise erstellte Objekte werden beim Schliessen der Engine oder durch Aufrufen der Funktion ptr_remove automatisch gelöscht.

Parameter:

name - Name (STRING* oder char*) einer Bilddatei, aus der die Größe, Format und Inhalt der Bitmap übernommen werden, optional gefolgt von den Koordinaten eines Ausschnitts.
x - Horizontaler Abstand der Bitmap von der oberen linken Ecke der Bilddatei in Pixeln.
y - Vertikaler Abstand der Bitmap von der oberen linken Ecke der Bilddatei in Pixeln.
width - Breite der Bitmap in Pixeln.
height - Höhe der Bitmap in Pixeln.
format - Bitmapformat (nur unkomprimierte Formate, s.bmap_lock) oder Anzahl an Bits pro Pixel (8, 16, 24, 32).

Rückgabewerte:

BMAP*-Pointer, oder NULL falls sie nicht erzeugt werden konnte.

Bemerkungen:

Geschwindigkeit:

Langsam

Beispiel:

// splits an image file horizontally and vertically into several parts,
// and stores them as separate files
void bmap_split(STRING* name,var splits_x,var splits_y)
{
  BMAP* bSource = bmap_create(name); // load the bitmap
  var dx = bmap_width(bSource)/splits_x; // get width and heigt of a split
  var dy = bmap_height(bSource)/splits_y;
  var format = bmap_format(bSource);
  BMAP* bDest = bmap_createblack(dx,dy,format); // create the split bitmap
  var i,j;
  for(j=0; j<splits_y; j++)
    for(i=0; i<splits_x; i++)
  {
// copy content from the original image into the split part, and save it
    bmap_blitpart(bDest,bSource,NULL,NULL,vector(i*dy,j*dy,0),vector(dx,dy,0));
    bmap_save(bDest,str_printf(NULL,"split%i%i.bmp",(int)j,(int)i));
  }
}

Siehe auch :

BMAP, bmap_lock, bmap_to_format, ptr_remove

► Aktuelle Version Online