Jak zmienić dany kolor w bitmapie?

0

Witam!
Jak w bitmapie zamienić podany kolor na inny. Chcę zamienić każdy piksel o danym kolorze na inny. Nie chodzi tutaj o funkcję Pixels[x,y] i nie chcę tego robić na pętlach. Czy istnieje taka funkcja, która potrafi to zamienić od razu?

pozdro

0

W jezyku LLoP jest taka instrukcja: ZamieńJedenKolorNaDrugi;

A tak serio: jesli jest to bitmapa < 8 bitowa, to możesz zamienić kolory w palecie.

0

To znowu ja. Musisz przygotować dwie bitmapy:
Pierwszą, zawierającą twój rysyneczek;
Drugą, na razie pustą.

<font size="4">Krok pierwszy:</span>

Na początek rysujesz w bitmapie numer dwa rectangla, w taki sposób, aby całego bitmapa zapełnić jednym kolorem:

bit2.canvas.pen.width:=0;
bit2.canvas.brush.color:=rgb(0,255,0); //Kolor, którym wypełnimy nasz bit2
bit2.canvas.rectangle(-1,-1,bit.width+1,bit.height+1);   // dlatego wszystko jest o 1 więkssze, aby nie było widać obwódki, która jest innego koloru

<font size="4">Krok drugi:</span>

Dokonujemy kopiowania za pomoca opisanej tutaj http://4programmers.net/faq.php?id=689 procedury brushcopy:

bit2.canvas.brushcopy(rect(0,0,bit2.width,bit2.height),bit1,rect(0,0,bit2.width,bit2.height),rgb(255,0,0));    //podajesz kolor, który zamieniasz, a zostanie on zamieniony na kolor, którym wypełniłeś bit2.

<font size="4">A więc:</span>

Jest to bardzo szybki sposób, do tego prosty i przydatny user image

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