Bitmap effizient zweiteilen

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

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

    Bitmap effizient zweiteilen

    Hallo.

    Kann mir jemand sagen, wie ich ein Bitmap
    effizient horizontal zweiteilen kann?

    Sagen wir man hätte ein Bitmap das von der Größe Width = 100 und Height = 50 ist.

    Ich benötige dann genau die Hälfte (das neue Bitmap wäre dann 100 / 25). Benötige
    die obere Hälfte immer.

    Wie kann man das möglichst effizient machen?
    Hi
    du könntest theoretisch den gleichen Speicher für die beiden Bitmaps verwenden und einfach der Höhe einen neuen Wert zuweisen. Ob das nun elegant, hässlich oder beides ist, kann ich gerade nicht bestimmen.
    Was du alternativ machen kannst: Lege eine neue Instanz der Bitmap-Klasse mit entsprechenden Abmessungen (also 100x25 Pixel) an und zeichne dort den Bildausschnitt per Graphics rein (Graphics.FromImage lässt dich auf die Bitmap zeichnen). Wenn es nur darum geht, das Bild nur darzustellen, dann kannst du auch einfach nur eine entsprechende Überladung von Graphics.DrawImage verwenden. Graphics.DrawImageUnscaled sollte auf jeden Fall für dich interessant sein und der CompositingMode kann auf Copy eingestellt werden (dadurch werden transparente Farben nicht mit der Hintergrundfarbe verrechnet, sondern einfach kopiert, was nochmal um einen Faktor weniger dauert).

    Viele Grüße
    ~blaze~

    Daniel Baumert schrieb:

    Ich benötige dann genau die Hälfte
    Wofür? In welchem Kontext?
    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!