Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

Grauton Kalkulation

  Alt 27. Mär 2012, 16:41
Hab hier eine Kalkulation für grautöne im Netz gefunden.

Calcuate grey
See Color Space FAQ at:

Delphi-Quellcode:
nSize := bm.bmWidth * bm.bmHeight;
for IntI := 0 to nSize do
begin
   // 0.212671 * R + 0.715160 * G + 0.072169 * B   
   iSrcR := GetDibR(ptPixels[IntI]);
   iSrcG := GetDibG(ptPixels[IntI]);
   iSrcB := GetDibB(ptPixels[IntI]);
   iGrey := (iSrcR * 54 + iSrcG * 182 + iSrcB * 19) shr 8;

   // Take color from the gradient
  Col := m_clGradient[iGrey];

   ptPixels[IntI] := RGB(
      (GetBValue(Col) * iAlpha + iSrcB * (255 - iAlpha)) shr 8,
      (GetGValue(Col) * iAlpha + iSrcG * (255 - iAlpha)) shr 8,
      (GetRValue(Col) * iAlpha + iSrcR * (255 - iAlpha)) shr 8 );
end;
Habe aber 2 kleine probleme was die definition von GetDib* und ptPixels angeht.
Übersetzung nach Delphi.

In C++

Code:
#define GetDibR(drgb)   (((drgb) & 0x00ff0000) >> 16)
#define GetDibG(drgb)   (((drgb) & 0x0000ff00) >> 8)
#define GetDibB(drgb)    ((drgb) & 0x000000ff)
Code:
UINT* ptPixels;
Wenn jemand näheres darüber weiss nur her damit

gruss
  Mit Zitat antworten Zitat