Plocka ut pixlar?!
Nån som vet hur man på ett enkelt sätt plockar ut pixlar(färgen på pixlen) från bilder (BMP(JPG/GIF) i Visual Basic...
Vore tacksam för svar....
//Magnus
Svara
Sv: Plocka ut pixlar?!
Ett enkelt sätt är att ladda in den i en Imagebox, sätta Strech till True och sedan göra så här:
Pixel = imgBild.Point(x,y)
Kan dock bli lite ineffektivt, antar jag.
/Niklas Jansson
Svara
Sv: Plocka ut pixlar?!
Precis som Niklas redan har nämnt så kan du använda Point metoden.
Den är dock väldigt, väldigt långsam...
Det spelar ingen större roll om du bara vill plocka färgen på en pixel som musen är över men om du ska loopa igenom alla pixlar i en bild så tar det en evig tid.
En något snabbare variant är att använda GetPixel API funktionen.
Även den tar tid om du loopar igenom en stor bild men den är i alla fall snabbare än Point.
<code>
Private Declare Function GetPixel _
Lib "gdi32" ( _
ByVal hdc As Long, _
ByVal x As Long, _
ByVal y As Long) As Long
</code>Som du ser måste du skicka in hDC som första argumentet så den funkar inte på Image kontroller eftersom de saknar hDC egenskapen.
Men för en Form eller PictureBox funkar den utmärkt.
Svara
Sv: Plocka ut pixlar?!
Perfekt. Jag var ganska säker på att min metod inte skulle vara något vidare. Förresten tror jag att den är fel. Strech måste vara false... :)
/Niklas Jansson
Svara
Sv: Plocka ut pixlar?!
Hej
Du kan ta en koll på mitt uppskick Programarkivet:138 WebCam experiment
mvh
Sven
Svara
Sv: Plocka ut pixlar?!
Nu tar jag mig friheten att kompletera med ett svar som du inte efterfrågade. Point eller GetPixel är mycket långsamt sätt att hantera bilder.
Ladda net API guide och kika på:
* GetDIBits
* GetBitmapBits
Betydligt snabbare att arbeta mot byte arrayer.
Svara