Thema: Delphi GR32 kontrast erhöhen?

Einzelnen Beitrag anzeigen

alienous

Registriert seit: 27. Jan 2006
94 Beiträge
 
#3

Re: GR32 kontrast erhöhen?

  Alt 28. Aug 2006, 16:09
schade also gibts solche printsuiten nicht, ok.

nunja, wenns jetz mit dem kontrast nicht klappt, dann gebe ich auch auf, aber hier mal eine von mir angepasste procedur, die ich hier gefunden habe:

Delphi-Quellcode:
function IntToByte(i:Integer):Byte;
asm
  MOV EAX,i
  CMP EAX,254
  JG @SETHI
  CMP EAX,1
  JL @SETLO
  RET
@SETHI:
  MOV EAX,255
  RET
@SETLO:
  MOV EAX,0
end;
Delphi-Quellcode:
procedure Contrast(var Bitmap: tbitmap32; Amount: Integer);
var
p0:PColor32EntryArray;
rg,gg,bg,r,g,b,x,y: Integer;
 begin
  for y:=0 to Bitmap.Height-1 do
  begin
    PColor32Array(p0):=Bitmap.scanline[y];
    for x:=0 to Bitmap.Width-1 do
    begin
      r:=p0[x].R;
      g:=p0[x].G;
      b:=p0[x].B;
      rg:=(Abs(127-r)*Amount)div 255;
      gg:=(Abs(127-g)*Amount)div 255;
      bg:=(Abs(127-b)*Amount)div 255;
      if r>127 then r:=r+rg else r:=r-rg;
      if g>127 then g:=g+gg else g:=g-gg;
      if b>127 then b:=b+bg else b:=b-bg;
      p0[x].R :=IntToByte(r);
      p0[x].G :=IntToByte(g);
      p0[x].B :=IntToByte(b);
    end;
  end;
end;
im einzelschritt-verfahren werden die werte bei amount = 10 ja nur ganz leicht verändert, und die werden auch zum schluss korrekt übergeben, aber ich erhalte ein schwarzes bild, woran liegt das? eine contrast-procedure habich in der gr32lib nicht gefunden.
  Mit Zitat antworten Zitat