czarno-biała bitmapa

0

Hej!
Czy wie ktos jak zrobic pod Delphi z kolorowej bitmapy czarno-biala? Wiem,ze jest cos takiego w gotowcach, ale przerabianie pixela po pixelu trwa strasznie dlugo a ja potrzebuje od razu po nacisnieciu buttona. Chodzi mi o cos takiego co sie dzieje przy wylaczaniu WinXP, ze po wybraniu zamknij system caly pulpit jest czarno bialy.Jak tam dam przeliczanie pixelow po kolei to zanim on to przerobi to minie kilka sekund...Dzieki za wszelkie pomysly</wiki>

0

TBitmap.pixelFormat := pf1bit; ?

0

Hmm...działa, a możnaby zrobic ze skalą szarości? bo to jest tylko czarno biała...troche kiszka wygląda

0

przeciez chciales czarno biala?
ja juz Cie nie rozumiem :)

przyklad jest w FAQ moze i pixel po pixelu ale od biedy mozesz przebic na scanline co powinno przyspieszyc znacznie ten proces :)

a zeby troszku oszczedzic roboty.. moze to pomoze:

procedure ConvertBitmapToGrayscale2(const Bmp: TBitmap);
  {From: Pascal Enz, [email protected] } 
type 
  TRGBArray = array[0..32767] of TRGBTriple; 
  PRGBArray = ^TRGBArray;
var 
  x, y, Gray: Integer; 
  Row: PRGBArray;
begin
  Bmp.PixelFormat := pf24Bit;
  for y := 0 to Bmp.Height - 1 do
  begin
    Row := Bmp.ScanLine[y];
    for x := 0 to Bmp.Width - 1 do 
    begin
      Gray           := (Row[x].rgbtRed + Row[x].rgbtGreen + Row[x].rgbtBlue) div 3;
      Row[x].rgbtRed := Gray; 
      Row[x].rgbtGreen := Gray; 
      Row[x].rgbtBlue := Gray; 
    end; 
  end; 
end;

skutek natychmiastowy :)

0

wiem...nie wytłumaczyłem dobrze :( sprobuje w domu bo teraz jestem out... DZIĘKI

0

DZIAŁA!!! Jestes wielki!! DZIEKI

1 użytkowników online, w tym zalogowanych: 0, gości: 1