05/06/10 8:44
Lorenzo L
Salve a tutti, sono un nuovo utente ma consulto questo interessantissimo sito da tempo.
Ho un problema che probabilmente si dimostrerà essere una stupidata...
In pratica devo sovrapporre un logo su una immagine, mantenendo i bordi rendendo trasparenti alcune parti del logo stesso. Quindi in modo abbastanza efficace ho usato l'API TransparentBlt. Però quando devo salvare l'immagine nella picture modificata, non viene inserito il logo. Questo invece succedeva se usavo il metodo PaintPicture, ma avevo l'inconveniente che non c'era la trasparenza...
Dove sbaglio?
Grazie a tutti!!!
Siete grandi!
Ho un problema che probabilmente si dimostrerà essere una stupidata...
In pratica devo sovrapporre un logo su una immagine, mantenendo i bordi rendendo trasparenti alcune parti del logo stesso. Quindi in modo abbastanza efficace ho usato l'API TransparentBlt. Però quando devo salvare l'immagine nella picture modificata, non viene inserito il logo. Questo invece succedeva se usavo il metodo PaintPicture, ma avevo l'inconveniente che non c'era la trasparenza...
Dove sbaglio?
'Ci sono solo due Picturebox. Picturebox1 è un'immagine con il logo il cui colore bianco deve essere reso trasparente. La Picturebox2 contiene lo sfondo. Private Declare Function TransparentBlt Lib "msimg32.dll" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal crTransparent As Long) As Boolean Private Sub Form_Load() Picture1.ScaleMode = vbPixels Picture2.ScaleMode = vbPixels Picture1.AutoSize = True End Sub Private Sub Picture2_Paint() DoEvents TransparentBlt Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbWhite SavePicture Picture2.Image, "c:\prova.bmp" End Sub
Grazie a tutti!!!
Siete grandi!
aaa