Oppure

Loading
08/04/09 18:57
azz.ciccio
Postato originariamente da ruggy94:

Si, in italiano trovi scritto "Capovolgi", mentre in inglese "Flip". Il problema è che so farlo in vb.net, ma non in vb6


ciao, mi spiace contraddirti, ma in tutti i software per circuiti stampati questa "operazione" si chiama "mirror"
A.
aaa
08/04/09 19:01
GrG
ecco allego un progetto che rispecchia (a mio parere) pienamente quello ke vuoi fare.
aaa
08/04/09 19:02
azz.ciccio
Postato originariamente da ruggy94:

Si, in italiano trovi scritto "Capovolgi", mentre in inglese "Flip". Il problema è che so farlo in vb.net, ma non in vb6


ciao, si potrei adattatarlo facilmente.

grazie
A.
aaa
08/04/09 19:39
azz.ciccio
Postato originariamente da azz.ciccio:

Postato originariamente da ruggy94:

Si, in italiano trovi scritto "Capovolgi", mentre in inglese "Flip". Il problema è che so farlo in vb.net, ma non in vb6


ciao, mi spiace contraddirti, ma in tutti i software per circuiti stampati questa "operazione" si chiama "mirror"
A.


si perfetto, prendendo spunto da un'altro sito sono arrivato a questa soluzione...

Private Declare Function StretchBlt Lib "gdi32" _
    (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 dwRop As Long) As Long


    With Picture1
        .AutoRedraw = True
        .ScaleMode = vbPixels
        StretchBlt .hdc, .ScaleWidth, 0, -.ScaleWidth, .ScaleHeight, .hdc, 0, 0, .ScaleWidth, .ScaleHeight, vbSrcCopy
        .Refresh
    End With

pero' l'esempio che mi hai postato e' decisamente meglio... ;)
grazie.
A.
aaa
08/04/09 20:10
Alceus
Piu semplicemente puoi usare questa sub che ho elaborato prendendo spunto da un altro forum.
In un form un CommandButton (Command1) e due PictureBox (Picture1 e Picture2)
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 Sub OttieniColore(PictureInput As PictureBox, PictureOutput As PictureBox)
Dim color As Long
ReDim r(PictureInput.ScaleWidth, PictureInput.ScaleHeight) As Long, g(PictureInput.ScaleWidth, PictureInput.ScaleHeight) As Long, b(PictureInput.ScaleWidth, PictureInput.ScaleHeight) As Long
PictureOutput.Width = PictureInput.Width
PictureOutput.Height = PictureInput.Height
PictureInput.ScaleMode = vbPixels
PictureOutput.ScaleMode = vbPixels
For X1 = 0 To PictureInput.ScaleWidth       'scrive negli array r, g, b i numeri corrispondenti al colore di ogni singolo pixel della pictureinput nei tre fattori della scala RGB
    For Y1 = 0 To PictureInput.ScaleHeight
        color = GetPixel(PictureInput.hdc, X1, Y1)
        r(X1, Y1) = color And &HFF
        g(X1, Y1) = (color And &HFF00&) \ &H100&
        b(X1, Y1) = (color And &HFF0000) \ &H10000
    Next Y1
Next X1
For X2 = 0 To PictureOutput.ScaleHeight     'riempie i pixel della pictureoutput a seconda dei colori dei pixels della pictureinput
    For Y2 = 0 To PictureOutput.ScaleHeight
        SetPixel PictureOutput.hdc, PictureOutput.ScaleWidth - X2 - 1, Y2, RGB(r(X2, Y2), g(X2, Y2), b(X2, Y2))
    Next Y2
Next X2
End Sub
Private Sub Command1_Click()
    OttieniColore Picture1, Picture2
End Sub
:k:
Ultima modifica effettuata da Alceus 08/04/09 20:14
aaa
09/04/09 8:56
azz.ciccio
si, perfetto, questo spezzone di codice va meglio!
grazie.
A.
aaa
09/04/09 11:23
Alceus
Figurati ;)
aaa