Bitmap vertikal vergrößern (nicht stretchen)

  • VB.NET
  • .NET 4.5

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von 100Volt.

    Bitmap vertikal vergrößern (nicht stretchen)

    Hallo,

    ich möchte eine Bitmap vertikal vergrößern (zur weiteren Verwendung muß die Anzahl vertikaler Pixel durch 24 ohne Rest teilbar sein) ohne die Grafik zu verzerren, also quasi einfach unten so viele Reihen weißer Pixel anfügen, bis die Größe paßt. Alles was ich dazu im Web finde, sind Beispiele bei denen die Grafik skaliert/gestretcht wird. Das möchte ich aber nicht.

    Hat jemand eine Idee dazu?


    Carsten
    --------
    Lieber inkompetent als inkontinent
    @100Volt Du kannst die Bitmap in eine andere Bitmap entsprechender Größe reinmalen und feddich.
    Aus dem Kopf, ungetestet:

    VB.NET-Quellcode

    1. ' bmp sei die vorhandene Bitmap
    2. Dim bmpNeu = New Bitmap(bmp.Width, bmp.Height + DELTA)
    3. Using g = Graphics.FromImage(bmpNeu)
    4. g.DrawImage(bmp, New Rectangle(bmp.Width, bmp.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel)
    5. End Using
    6. ' bmpNeu verwenden
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!
    Vielen Dank für Deine schnelle Antwort!

    Mit einer kleinen Änderung:

    VB.NET-Quellcode

    1. g.DrawImage(bmp, New Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel)

    funktioniert es grundsätzlich. Allerdings sind die Pixel des größer gezeichneten Bereichs wohl schwarz. Zumindest ist bei der Ausgabe nun unter der uprsprünglichen Grafik eine schwarze Linie, die in Höhe den "Differenz-Pixeln" entspricht.
    Kann man die Grundfarbe der neu erstellten Bitmap festlegen?
    --------
    Lieber inkompetent als inkontinent
    @100Volt Vor g.DrawImage() machst Du g.Clear(Color.White).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!