Programowanie w języku Delphi » Artykuły

Skanowanie obrazka i zabawa kolorami ciąg dalszy

Skanowanie obrazka i zabawa kolorami ciąg dalszy..


CHCIELIŚCIE WIĘCEJ PRZYKŁADÓW TO MACIE !!!


1. kratkowanie (dla dobrych kart graficznych



 
Var<br>
    R,G,B:byte;<br>
    WI,HE:integer;<br>
    bol:boolean;<br>
    begin<br>
    bol:=false;<br>
    for wi:=0 to img1.picture.width do&nbsp;&nbsp;&nbsp; //skanowanie obrazka -start<br>
    begin<br>
    for he:=0 to img1.picture.height do&nbsp;&nbsp; <br>
    begin<br>
    bol:=not(bol);<br>
    if bol then<br>
    begin<br>
    outer.canvas.pixels[wi,he]:=img1.canvas.pixels[wi,he]; <br>
    end else<br>
    begin<br>
    outer.canvas.pixels[wi,he]:=img2.canvas.pixels[wi,he]; <br>
    end;<br>
    end;<br>
    end;//skanowanie obrazka -koniec<br>
    end;


2. paski pionowe (dla dobrych kart graficznych



 
Var<br>
    R,G,B:byte;<br>
    WI,HE:integer;<br>
    bol:boolean;<br>
    begin<br>
    bol:=false;<br>
    for wi:=0 to img1.picture.width do&nbsp;&nbsp;&nbsp; //skanowanie obrazka -start<br>
    begin<br>
    bol:=not(bol);<br>
    for he:=0 to img1.picture.height do&nbsp;&nbsp; <br>
    begin<br>
    <br>
    if bol then<br>
    begin<br>
    outer.canvas.pixels[wi,he]:=img1.canvas.pixels[wi,he]; <br>
    end else<br>
    begin<br>
    outer.canvas.pixels[wi,he]:=img2.canvas.pixels[wi,he]; <br>
    end;<br>
    end;<br>
    end;//skanowanie obrazka -koniec<br>
    end;


3. paski poziome (dla dobrych kart graficznych



 
Var<br>
    R,G,B:byte;<br>
    WI,HE:integer;<br>
    bol:boolean;<br>
    begin<br>
    bol:=false;<br>
    for he:=0 to img1.picture.height do&nbsp;&nbsp;&nbsp; //skanowanie obrazka -start<br>
    begin<br>
    bol:=not(bol);<br>
    for wi:=0 to img1.picture.width do&nbsp;&nbsp; <br>
    begin<br>
    <br>
    if bol then<br>
    begin<br>
    outer.canvas.pixels[wi,he]:=img1.canvas.pixels[wi,he]; <br>
    end else<br>
    begin<br>
    outer.canvas.pixels[wi,he]:=img2.canvas.pixels[wi,he]; <br>
    end;<br>
    end;<br>
    end;//skanowanie obrazka -koniec<br>
    end;


4. inna kolejność



 
Var<br>
    R,G,B:byte;<br>
    WI,HE:integer;<br>
    begin<br>
    for wi:=0 to img1.picture.width do //skanowanie obrazka -start<br>
    begin<br>
    for he:=0 to img1.picture.height do <br>
    begin<br>
    R:=getRvalue(img1.canvas.pixels[wi,he])<br>
    +getRvalue(img2.canvas.pixels[wi,he]); (*// dodawanie kolorów może być xor, 
    -, * itd. *)<br>
    g:=getgvalue(img1.canvas.pixels[wi,he])<br>
    +getgvalue(img2.canvas.pixels[wi,he]); // dodawanie kolorów<br>
    b:=getbvalue(img1.canvas.pixels[wi,he])<br>
    +getbvalue(img2.canvas.pixels[wi,he]); // dodawanie kolorów<br>
    outer.canvas.pixels[wi,he]:=rgb(B,R,G); // końcowe rysowanie wyliczonych 
    kolorów w 3 obrazku w innej kolejności może być (* g,b,r ; r,b,g itd *)<br>
    end;<br>
    end; //skanowanie obrazka -koniec<br>
    end;


5. Blue box&nbsp;


stwórz 3 spinedity nazwij je kolejno re, gr, bl one będą oznaczały kolor
przezroczysty.



 
Var<br>
    WI,HE:integer;<br>
    begin<br>
    for wi:=0 to img1.picture.width do //skanowanie obrazka -start<br>
    begin<br>
    for he:=0 to img1.picture.height do <br>
    begin<br>
    if img1.canvas.pixels[wi,he]=rgb(re.value,gr.value,bl.value) then 
    outer.canvas.pixels[wi,he]:=img2.canvas.pixels[wi,he] else 
    outer.canvas.pixels[wi,he]:=img1.canvas.pixels[wi,he];<br>
    end;<br>
    end; //skanowanie obrazka -koniec<br>
    end;

6 komentarzy

Piotrekdp 2005-11-30 11:37

szajs niestety ktoto widział na pixelach robić! :(

Sanjuro 2005-06-20 18:43

\"(dla dobrych kart graficznych)\" - mam wrazenie ze malo wiesz o programowaniu w delphi :| Przecierz z tym kodem to grafa za cholere tego nie przetworzy, tym zajmie sie procesor, a geafa tylko wyswietli (co zrobi w ulamek sekundy).

I nastepna sprawa to Drajwer dobrze rzecze: ScanLine\'m go wziasc to bedzie szybciej.

kin! 2004-04-04 21:51

Jak byś użył ScanLine to przyśpieszył procedurea wykonywała by się >>10x szybciej!!!

Drajwer 2003-04-08 10:59

ja bym zrobil na scanline :-|

roSzi 2003-04-06 16:09

a mi sie podobaja Twoje ostatnie artykuly i nie zniechecaj sie poczatkowa nieprzychylnoscia forumowiczow :P.

Hex 2003-04-05 23:42

Nio, teraz to sie rozumie ;P