[c++][borland]TPaintBox

Hi,

ich habs mir mal kurz angeschaut... Habe zwar noch nie mit der
PaintBox gearbeitet, aber der Hilfe nach gibt es anscheinend keine
direkte Methode zum Speichern des Bildes.

Es gibt jedoch meines Erachtens einen Workaround:

TPaintBox hat eine Member 'Canvas' und Canvas hat eine
Property 'Pixels'

Du kannst nun eine Bitmap in der Größe der PaintBox anlegen
und Pixel für Pixel den Inhalt kopieren.

Code:
Graphics::TBitmap *Bitmap = new Graphics::TBitmap;

Bitmap->Bpp = 24;
Bitmap->Width = PaintBox->Width;
Bitmap->Height = PaintBox->Height;

for( int x = 0; x < PaintBox->Width; x++ )
{
    for( y = 0; y < PaintBox->Height; y++ )
    {
        Bitmap->Canvas->Pixels[ x ][ y ] = PaintBox->Canvas->Pixels[ x ][ y ];
    }
}

Bitmap->SaveToFile( "bild.bmp" );

Ist natürlich nicht die schnellste Methode, zur Beschleunigung kannst
du auch Bitmap-Scanline verwenden, aber was anderes fällt mir dazu
auch nicht ein..

Greets
BadMourning
 

Neue Beiträge

Zurück