AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Durchschnittsfarbe eines Bitmap "schnell" ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Durchschnittsfarbe eines Bitmap "schnell" ermitteln

Ein Thema von KodeZwerg · begonnen am 10. Mai 2021 · letzter Beitrag vom 12. Mai 2021
Antwort Antwort
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.100 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Durchschnittsfarbe eines Bitmap "schnell" ermitteln

  Alt 12. Mai 2021, 10:18
Hier habe ich noch einen Code gefunden, aber wie es ausschaut machen die den gleichen Ansatz:
Ja, außer dass die vor dem eigentlichen "Zählen" die Daten aus der Bitmap in ein Array kopieren.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Durchschnittsfarbe eines Bitmap "schnell" ermitteln

  Alt 12. Mai 2021, 15:22
Danke skybibo und Amateurprofi ich werde es nach her mal durch-testen!

So werde ich vorgehen, hoffentlich ist das soweit okay, habe es selbst noch nicht getestet da ich gerade bemüht bin dutzende von methoden aus einer vcl-haupt-unit in eine seperate unit auszulagern.

Hier mein Code der vor Eurem geschaltet wird:
Delphi-Quellcode:
function FilenameToBmp(const AFilename: string; out ABmp: TBitmap): Boolean;
var
  wic: TWICImage;
begin
  if ((not FileExists(AFilename)) or (nil = ABmp)) then
    Exit(false);
  wic := TWICImage.Create;
  try
    ABmp.Dormant;
    ABmp.FreeImage;
    ABmp.ReleaseHandle;
    wic.LoadFromFile(AFilename);
    ABmp.Assign(wic);
    ABmp.PixelFormat := pf24bit;
    Result := Assigned(ABmp);
  finally
    wic.Free;
  end;
end;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.393 Beiträge
 
Delphi 12 Athens
 
#3

AW: Durchschnittsfarbe eines Bitmap "schnell" ermitteln

  Alt 12. Mai 2021, 15:35
OUT?

VAR Ohne (bzw. CONST) !!!

Es kommt was rein, also ist mindestens es IN-OUT,
aber eigentlich geht auch garnichts raus,
denn die Instanz/Variable/Parameter ändert sich garnicht.

Nur der Inhalt der Instanz ändert sich, aber das hat mit dem Objektzeiger nichts zu tun.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Durchschnittsfarbe eines Bitmap "schnell" ermitteln

  Alt 12. Mai 2021, 15:41
OUT?

VAR Ohne (bzw. CONST) !!!

Es kommt was rein, also ist mindestens es IN-OUT,
aber eigentlich geht auch garnichts raus,
denn die Instanz/Variable/Parameter ändert sich garnicht.

Nur der Inhalt der Instanz ändert sich, aber das hat mit dem Objektzeiger nichts zu tun.
Also function FilenameToBmp(const AFilename: string; const ABmp: TBitmap): Boolean; so?
Danke fürs Lesen und Fehler erkennen!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.393 Beiträge
 
Delphi 12 Athens
 
#5

AW: Durchschnittsfarbe eines Bitmap "schnell" ermitteln

  Alt 12. Mai 2021, 15:47
Jupp, wobei das CONST optional ist. (nach außen hin ist OHNE und CONST gleich)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Durchschnittsfarbe eines Bitmap "schnell" ermitteln

  Alt 12. Mai 2021, 16:29
Hier gibt es Infos zum Berechnen der Durchschnittsfarbe eines Bildes; einmal simpel via Mittelwert (wie hier besprochen, Resultat oft ein etwas "dumpfer" Farbton) und einmal etwas anders anders (in vielen Situationen bessere Beachtung von Helligkeit & Kontrast). Bild1 zeigt den Unterschied.

https://sighack.com/post/averaging-r...-the-right-way

Weitere Infos zu Farbabstandsmessung gibt's überall, u.a. hier:
https://www.compuphase.com/cmetric.htm
Unter Beachtung der Infos von Link2 (Gewichtung der Farbwerte) würde die Berechnung bei Link1 noch einmal etwas anders aussehen.

Ich habe noch bei Adobe gesucht, den in ihren Produkten verwendeten Algorithmus jedoch nicht gefunden.
Michael Gasser
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz