TBitmap Grösse nach Erstellung ändern



  • Mahlzeit

    kurze Frage: wie kann ich ein neu erstelltes Bitmap grössenmässig ändern, samt Inhalt?
    Genau: Ich erstelle aus allen Zeichen eines Zeichensatzes Bitmaps. Ein Zeichen = ein Bitmap. Soweit so gut.
    Nun muss ich diese Bitmaps zum Anzeigen vergrössern. Das soll nicht jedesmal beim Anzeigen passieren, sondern einmal. Nämlich nach dem erstelllen.
    Nur wie? Hab mich da im Moment wohl in die völlig falsche Richtung verrannt 😮

    any Ideas?

    grüssle 🙂



  • Hallo

    Beim erstellen kannst du mit Canvas::StretchDraw das Original-Bitmap in ein neues, größeres kopieren. Allerdings ist das Ergbnis unter Umständen durch die Skalierung unscharf.

    bis bald
    akari



  • Au Backe sieht das übel aus. Zm Glück ist mir das nicht eingefallen 😉 ( <- soll ein Danke sein 🕶 )

    Muss ich mal versuchen das ganze pixelweise 'hochzuziehen'

    grüssle 🙂



  • Hallo

    Naja warum vergrößerst du denn auch fertige Schrift? Du solltest lieber die Schrift beim DrawText gleich in einer größeren Schriftgröße zeichnen.

    bis bald
    akari



  • Hab ich versucht, das Prob ist die Änderung der FontSize.

    AnsiString tst = char(zch);
    	Graphics::TBitmap* nBmp = new Graphics::TBitmap();
    	int w = fCharImage->Canvas->TextWidth(tst);
    	int h = fCharImage->Canvas->TextHeight(tst);
    	fCharImage->Canvas->Font->Size = (-fCharImage->Canvas->Font->Height * 72 / fCharImage->Canvas->Font->PixelsPerInch)*8;
    	fCharImage->Canvas->TextOut( 1, 1, tst.c_str() );
    
    	nBmp->PixelFormat= pf8bit;
    	nBmp->Width = w;
    	nBmp->Height = h;
    	w *= 20;
    	for( int j = 0; j < h; j++ )
    	{
    		for( int u = 0; u < w; u++ )
    			if (fCharImage->Canvas->Pixels[u][j] == clBlack)
    				fCharImage->Canvas->Pixels[u][j] = clWhite;
    			else
    				fCharImage->Canvas->Pixels[u][j] = clBlack;
    	}
    	nBmp->Canvas->Draw( 0, 0, fCharImage->Picture->Bitmap );
    	nBmp->SaveToFile( "c:\\tst.bmp" );
    

    wenn ich die Fontsize setze, hat das resultierende Bitmap wohl die richtige Größe, aber die Farbumkehrung stimmt nicht mehr. Sprich im Ergebnis soll der Hintergrund schwarz und das Zeichen weiss sein.
    Im Bitmap ist dann aber nur noch ein kurzer schwarzer Streifen links oben 😞

    Naja, weiterversuchen

    Thx


Anmelden zum Antworten