Zwei Bitmap miteinander kombinieren, Transparentz erhalten und eine Transparente Farbe definieren

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von dive26.

    Zwei Bitmap miteinander kombinieren, Transparentz erhalten und eine Transparente Farbe definieren

    Hallo Leute,

    dank Eurer Hilfe von gestern bin ich bei meinem Projekt schon fast fertig. Mir fehlt nur noch ein Punkt.

    Ich habe zwei Images. Das eine ist ein Hintergrund (Vorlage/Template) und das andere ist geschriebener Text.

    Wie Ihr im Screenshot sehen könnt, kann ich das geschriebene auf den Hintergrund "Millimeterpapier" legen und alle nicht gezeichneten Bereiche bleiben transparent.

    Jedoch gibt es die Funktion "Eraser". Die zeichnet einen weißen Bereich. Dieser ist dann natürlich weiß und nicht mehr transparent. Dementsprechend sieht man im linken Vorschaubild links unten wo "- ERASER" dabei steht einen weißen Fleck statt dem Hintergrund.

    Wie kann ich vor dem "Drawimage" diese weiße Farbe auch als Tranparent festlegen. Oder gerne schon beim Zeichnen der Bereiche mit Drawline?

    VB.NET-Quellcode

    1. Using g As Drawing.Graphics = Graphics.FromImage(TemplateImage)
    2. g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.GammaCorrected
    3. g.DrawImage(rmBitmap, 0, 0)
    4. End Using


    EDIT: Ich war wieder einmal viel zu schnell mit meiner Frage und habs selbst herausgefunden ;)

    VB.NET-Quellcode

    1. rmBitmap.MakeTransparent(Color.White)

    Bilder
    • 06012021194108.jpg

      347,03 kB, 1.059×802, 75 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dive26“ ()

    vlt bringt das was:

    Objectbrowser schrieb:

    Public Sub MakeTransparent(transparentColor As System.Drawing.Color)
    Member of System.Drawing.Bitmap

    Summary:
    Makes the specified color transparent for this System.Drawing.Bitmap.

    Parameters:
    transparentColor: The System.Drawing.Color structure that represents the color to make transparent.

    Exceptions:
    System.InvalidOperationException: The image format of the System.Drawing.Bitmap is an icon format.
    System.Exception: The operation failed.
    habich selbst nie probiert

    ErfinderDesRades schrieb:

    habich selbst nie probiert
    Funktioniert prima, ich hab ein Tool gemacht, mit dem ich den Hintergrund von Images transparent mache um sie als Icons in ToolBars einzusetzen.
    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).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielen Dank Euch beiden.

    Habs kurz nachdem ich den Beitrag verfasst habe selbst herausbekommen. Bin immer zu voreilig mit dem Fragen ;-).

    bitmap.MakeTransparent funktioniert einwandfrei.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at