Koodi yksinkertaisesti invertoi kuvan, mutta erittäin hitaasti. Tee formille PictureBox(Picture1), PictureBox(Picture2), CommandButton(Command1). Siiten vaan lataat jonkun kuvan picture1:een ja painat command1:stä.
'Kuvien Invertoija 'Muista ladata kuva Picture1:een 'T: Solof Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long Private Type POINTAPI x As Long y As Long End Type Dim pt As Long Dim Pituus, Leveys As Long Private Sub Command1_Click() 'asetetaan pituus jä leveys Leveys = Picture1.Width Pituus = Picture1.Height Invert Picture1.hdc, Picture2.hdc End Sub Private Sub Form_Load() 'Scalemodet päälle Form1.ScaleMode = 3 Picture1.ScaleMode = 3 Picture2.ScaleMode = 3 Picture1.AutoSize = True 'Säädetään pictureboxien koot Picture2.Height = Picture1.Height Picture2.Width = Picture1.Width End Sub Sub Invert(Lahde As Long, Kohde As Long) For p = 1 To Pituus 'Käydään kuvan Pituus läpi For l = 1 To Leveys 'Käydään Kuvan Leveys Läpi pt = GetPixel(Lahde, l, p) 'otetaan pixeli boxista pt = 16777215 - pt 'Invertoidaan värit (luku 16777215 = (256*256*256) -1) SetPixel Kohde, l, p, pt 'asetetaan pixeli boxiin DoEvents Next Next End Sub
Onhan tuo vähän hidasta puuhaa noin. Mahtaisiko BitBlt:llä onnistua sopivien määritysten kanssa?
No ei se must kyl hirvee hidas oo.
Hitaus on katsojan silmässä.
Ei oo yhtää hidas vaik mul o super hidas kone niinku ei voi montaa ohjelmaa ajaa ilma et kaatuu!
bitbltllä muuten onnistuu suoraan sen invertointi:
BitBlt Kohde.hDC, x, y, Lähde.ScaleWidth, Lähde.ScaleHeight, Lähde.hDC, 0, 0, &H660046
luulisin :D
siis noi kohde ja lähde tossa mun edellisessä viestissä on picturelaatikoita
niin ja alkuun vielä tietenkin "Public Declare Function BitBlt Lib "Gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long". sori tää mun hirmunen kasa (3) viestejä peräkkäin
Aihe on jo aika vanha, joten et voi enää vastata siihen.