![]() |
Photoshopfilter: Dunkle Bereiche Vergrößern
So, da ich diesen Filter brauchte habe ich ihn nachgecodet.
Er benötigt die RGBtoHSV und HSVtoRGB Funktionen aus: ![]() Beschreibung nach Photoshop: Zitat:
Delphi-Quellcode:
function ExpandDarkAreas(bmp : TBitmap; const range : byte) : TBitmap;
var i, j, x, a, b, minimum, count : integer; angle : array of integer; saturation, brightness : array of byte; pixcolor : TColor; Begin count := (range+range+1)*(range+range+1); //Anzahl der Pixel die untersucht werden //Arrays auf Länge setzen setlength(angle, count); setlength(saturation, count); setlength(brightness, count); //Funktionsergebnis vorbereiten result := TBitmap.Create; result.Width := bmp.Width; result.Height := bmp.Height; result.PixelFormat := bmp.PixelFormat; //Alle Pixel sollen durchlaufen werden for i := 0 to bmp.Width-1 do for j := 0 to bmp.Height-1 do Begin x := 0; for a := -range to range do for b := -range to range do Begin //HSV Werte in die Arrays speichern pixcolor := bmp.Canvas.Pixels[i+a, j+b]; RGBtoHSV(GetRValue(pixcolor), GetGValue(pixcolor), GetBValue(pixcolor), angle[x], saturation[x], brightness[x]); inc(x); end; //Dunkelsten Wert suchen! minimum := brightness[0]; for x := 1 to count-1 do minimum := Min(minimum, brightness[x]); //Für helle Bereiche vergrößern: statt Min=>Max //Dunkelsten Wert in neue Bitmap setzen. result.Canvas.Pixels[i, j] := HSVtoRGB(angle[(count div 2)+1], saturation[(count div 2)+1], minimum); end; end; Hmm der Code sollte eigentlich ausreichend Kommentiert sein. Viel Spaß Eichhoernchen |
Re: Photoshopfilter: Dunkle Bereiche Vergrößern
Muss ich leider zurückzoehen den Eintrag, es ist nicht genau der Photoshopfilter, zwar macht der Filter genau das was in der Beschreibung steht, jedoch scheint Photoshop noch die Farben irgendwie zu mischen!
Sorry ich gucke ob ich es schaffe es richtig zu bekommen! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 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