Newsgroup: it.comp.lang.visual-basic
Titolo: Zoom

Qualcuno conosce un modo semplice ed efficace per fare lo zoom di immagini
bmp?
e il merge fra bmp?
grazie,
ligre.

e il merge fra bmp?
Cosa intendi per merge?
Guarda bene sempre la PaintPicture
Ciao


Giuro che è l'ultima volta che rispondo  a una domanda con un oggetto non in
regola:
(se non hai capito cosa intendo leggi il manifesto del News sul sito
comune )
http://www.murialdo.it/it_lang_vb
    8-)
Visto che però siamo sotto Natale ecco una possibile soluzione come regalo
*<|:-)>
Non so se è semplice o efficace però funziona (VB6):
In un Form inserisci:
1 controllo picturebox di Nome picContenitore
1 controllo image di Nome imgZoom dentro picContenitore
1 controllo picturebox di Nome picOriginale (Visible=False)
1 scrollbar orizz. di nome hScr dentro picContenitore
1 scrollbar vert. di nome vScr dentro picContenitore
1 slider di nome sldZoom (Min=1 Max=400) lo trovi in Microsot CommonControls
poi inserisci il seguente codice:
Option Explicit
Dim sngRapporto As Single
Private Sub Form_Load()
    Set picOriginale = LoadPicture(App.Path & "\FOTO.BMP")
    Set imgZoom = picOriginale
    sngRapporto = picOriginale.Width / picOriginale.Height
    imgZoom.Visible = False
    'Posiziono e dimensiono le ScrollBar
    hscr.Move picContenitore.Left, picContenitore.Height +
picContenitore.Top, picContenitore.Width
    hscr.Max = imgZoom.Width - picContenitore.Width
    hscr.SmallChange = picContenitore.ScaleWidth / 50
    hscr.LargeChange = picContenitore.ScaleWidth / 5
    vscr.Move picContenitore.Width + picContenitore.Left,
picContenitore.Top, vscr.Width, picContenitore.Height
    vscr.Max = imgZoom.Height - picContenitore.Height
    vscr.SmallChange = picContenitore.ScaleHeight / 50
    vscr.LargeChange = picContenitore.ScaleHeight / 5
    'Rendo visibili le scrollbar se 'immagine è + grande di
    'picContenitore
    vscr.Visible = picContenitore.ScaleHeight < imgZoom.Height
    hscr.Visible = picContenitore.ScaleWidth < imgZoom.Width
    imgZoom.Move 0, 0
    Me.Caption = "Dimensioni Originali"
    imgZoom.Visible = True
End Sub
Private Sub sldZoom_Change()
    Dim sngZoom As Single
    sngZoom = sldZoom.Value / 100
    imgZoom.Stretch = True
    imgZoom.Move 0, 0, picOriginale.Width * sngZoom, picOriginale.Width *
sngZoom / sngRapporto
    Set imgZoom.Picture = picOriginale
    hscr.Max = imgZoom.Width - picContenitore.Width
    vscr.Max = imgZoom.Height - picContenitore.Height
    vscr.Visible = picContenitore.ScaleHeight < imgZoom.Height
    hscr.Visible = picContenitore.ScaleWidth < imgZoom.Width
    Select Case sldZoom.Value
    Case 100
        Me.Caption = "Dimensioni Originali"
    Case Is < 100
        Me.Caption = "Riduzione: " & sldZoom.Value & "%"
    Case Is > 100
        Me.Caption = "Ingrandimento: " & sldZoom.Value & "%"
    End Select
End Sub
Private Sub hscr_Change()
    imgZoom.Left = -hscr.Value
End Sub
Private Sub hscr_Scroll()
    imgZoom.Left = -hscr.Value
End Sub
Private Sub vscr_Change()
    imgZoom.Top = -vscr.Value
End Sub
Private Sub vscr_Scroll()
    imgZoom.Top = -vscr.Value
End Sub
Per quanto riguarda il merge prova a guardare sull'help la proprietà
paintpicture dell'oggetto picture, l'ultimo parametro ti permette di unire
due immagini
Se non è chiaro riposta che ne parliamo.
--
Ciao e tanti auguri
VB
*<:-)