Forum: Multimedia
by Medium,
25. Feb 2020
In dem Fall ist dein ursprünglicher Ansatz doch gar nicht so falsch. Im Gegenteil. Ich würde ggf. lediglich einen Zwischenschritt über Gleitkommaarithmetik machen.
Illustriert: Ziel := Round(((OriginalAlsSW/255) * (Wunschfarbe/255)) * 255)
Das gleicht weitestgehend deinem Ansatz, nimmt aber eventuelle Rundungsfehler raus, die je nach Reihenfolge bzw. Klammerung sonst auftreten können. Warum...
Forum: Multimedia
by Medium,
25. Feb 2020
Was genau möchtest du?
Mit einer anderen Farbe übermalen: Canvas.FillRect()
Oder wie beschrieben eine monochrome Version des Bildes so einfärben, dass 50% Grau einer Zielfarbe entspricht? Oder vielleicht eine Farbe transparent über das (farbige) Originalbild malen? Das sind 3 sehr unterschiedliche Dinge, und mir ist nicht ganz klar was davon dein konkretes Ziel ist.