Tjek pixel farve i en picturebox på CurrentX og Y kordinater

Tags:    visual-basic

Hej...

Er det muligt at tjekke hvilken farve en pixel har på nuværende PictureBox.CurrentX og PictureBox.CurrentY kordinat?

Og også ændret den til Hvis hvis den ikke er blå i forvejen...

Jeg er ved at lave sådan at man kan tegne noget blåt på et billede og så bagefter så gør den alt det der IKKE er blåt til hvidt så man kun ser det blå!

På forhånd tak!

EDIT: Fandt selv løsningen
Fold kodeboks ind/udKode 


Men det ville dog hver dejlig hvis nogle lige kunne hjælpe lidt til hvordan jeg laver en kode der gennemgår alle pixels i billedet, og hvis de ikke er blå, så skal den gøre dem hvide! Så er det nemlig kun det blå der er tilbage! :D

På forhånd tak! :D


EDIT: Okay! Jeg har fundet en metode til at fjerne alt det der ikke er blåt! Men den er upræcis og ekstrem langsom!!! Og ustabil! Vil meget gerne have at vide hvis nogen har en bedre en! :D

Se min kode her:
Fold kodeboks ind/udKode 


PS: Er der en måde at tenge en prik på istedet for .Line -(X,Y) ???



Indlæg senest redigeret d. 02.07.2006 19:28 af Bruger #1927
4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Det første du kan gøre er at ændre MaxY og MaxX til henholdsvis ScaleHeight og ScaleWidth, da du ellers får bredden af objektet og ikke bredden af billedet som du ønsker.

Det næste du skal tænke på er at din pictureboxs 'ScaleMode' sikkert er sat til 'Twip' hvilket er 1/15 af en pixel. Så du kan optimere din algoritme med en faktor 15 ved bare at ændre 'ScaleMode' til Pixel, eller tilføje 'Step 15' til dine løkker.

Med hensyn til dit ".Line -(X,Y)", så findes der en anden måde. Du kan bare bruge ".PSet (X,Y)". På den måde slipper du også for at skulle sætte 'CurrentX' og 'CurrentY' variablerne for pictureboxen.
Både .Line og .PSet har et ekstra valgfrit parameter som angiver farven. Så hvis du vil, kan du slette din linie med 'ForeColor' og kalde med ".PSet (X,Y), vbWhite".

Hvis du vil kan du tilføje 'DoEvents' i den yderste løkke så computeren ikke fryser hver gang du bruger algoritmen på et stort billede.



Okay. Tak!

Kan du forklare lidt mere om hvad "DoEvents" gør da jeg faktisk aldrig har brugt den???



Læs om det her



Indlæg senest redigeret d. 18.07.2006 13:19 af Bruger #2165
Læs om det her


Okay! Tak!



t