![]()
Ciao a tutti.
Ho fatto un codice che carica in una picturebox un file bitmap,poi modifica la bitmap tramite la funzione setpixel ed infine salva la bitmat modificata.
Il codice funziona bene nelle fasi di caricamento e modifica (anche se la modifica è lenta).
Invece non funziona il salvataggio nel senso che viene sempre salvata la bitmap originale e non quella modificata.
Vi allego il codice sperando che qualcuno trovi l'inghippo.
Ciao e grazie.
sssimone.
CODICE
'controlli da creare
'una picturebox chiamata picture1
'un common dialog control 6.0 chiamato CommonDl con filter bmp
' un file menù contenente un apri menù e un salva menù quest'ultimo settato a enabled false
'dichiarazioni
'
Dim immagine As String
Dim Ximmagine As Long, Yimmagine As Long
Dim thePicture As StdPicture
Dim R As Long
Dim G As Long
Dim B As Long
Dim ColoreEstratto As Long
Dim HexColoreEstratto As String
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 Sub Apri_Click()
Dim x As Long
Dim y As Long
'carico il file bitmap nella picuturebox picture1
'
CommonDl.ShowOpen
immagine = CommonDl.FileName
Picture1.Picture = LoadPicture(immagine)
'leggo le dimensioni in pixel della bitmap caricata
'
Set thePicture = Picture1.Picture
Ximmagine = Round(Picture1.ScaleX(thePicture.Width, vbHimetric, vbPixels))
Yimmagine = Round(Picture1.ScaleY(thePicture.Height, vbHimetric, vbPixels))
'modifico la bitmap rendendola ad esempio tutta nera
'
Ximmagine = Ximmagine - 1
Yimmagine = Yimmagine - 1
For x = 0 To Ximmagine
For y = 0 To Yimmagine
SetPixel Picture1.hdc, x, y, RGB(Round(R), Round(G), Round(B))
Next y
Next x
'attivo salva
'
Salva.Enabled = True
End Sub
' salvo l'immagine modificata
'
Private Sub Salva_Click()
CommonDl.ShowSave
immagine = CommonDl.FileName
SavePicture Picture1.Picture, immagine
End Sub