Newsgroup: it.comp.lang.visual-basic
Titolo: Passare immagine, ridimensionare e salvare...

Scusate, magari il problema sarà banale ma nel frattempo che faccio
altre prove magari qualcuno può correggermi questo pezzo di codice:
 'ridimensiona immagine passandola al controllo image ridimensionato
        frmPicture.Image1.Picture = frmPicture.Picture1.Image
        frmPicture.Image1.Height = intImgH 'altezza
        frmPicture.Image1.Width = intImgW 'larghezza
        frmPicture.Image1.Stretch = True
        SavePicture frmPicture.Image1.Picture, strImgPath & "\" &
strFileImg(i) & ".bmp"
Le immagini vengono passate correttamente dal controllo Picture a
quello Image, che le salva ma non nella dimensione che io gli indico
nelle due variabili intImgH e intImgW.
Grazie.
Stefano

 ha scritto nel messaggio 
news:1150887069.8...@b68g2000cwa.googlegroups.com...



'********************************************************************
Dovresti provare ad invertire il *controllo immagine*  PictureBox , con la 
*casella immagine* Image.
Ho provato ad adattarti un mio codice, devi provarlo.
        Dim X  as Single
         Dim intImgH As Single
        Dim  intImgW   As Single
' Copia l'immagine che si trova nella Casella Immagine nella PictureBox, con 
le dimensioni che hai scelto in  intImgH  e  intImgW .
        frmPicture.Picture1.PaintPicture Image1.Picture, 0, 0, intImgH, 
intImgW
' Ridimensiona i bordi della PictureBox alle stesse dimensioni dell' 
immagine
    If  frmPicture.Picture1.ScaleWidth > intImgH Then
            X = frmPicture.Picture1.ScaleWidth - intImgH
            frmPicture.Picture1.Width = (Picture1.Width - X)
        Do While  intImgH <> frmPicture.Picture1.ScaleWidth
            frmPicture.Picture1.Width = (frmPicture.Picture1.Width - 1)
        Loop
   Else
            X =  intImgH - frmPicture.Picture1.ScaleWidth
            frmPicture.Picture1.Width = (frmPicture.Picture1.Width + X)
        Do While  intImgH <> frmPicture.Picture1.ScaleWidth
            frmPicture.Picture1.Width = (frmPicture.Picture1.Width + 1)
        Loop
   End If
End If
    If  frmPicture.Picture1.ScaleHeight > intImgW Then
                X = Picture1.ScaleHeight - intImgW
                Picture1.Height = (Picture1.Height - X)
            Do While intImgW <> Picture1.ScaleHeight
                Picture1.Height = (Picture1.Height - 1)
            Loop
        Else
                X = intImgW - Picture1.ScaleHeight
                Picture1.Height = (Picture1.Height + X)
            Do While intImgW <> Picture1.ScaleHeight
                Picture1.Height = (Picture1.Height + 1)
            Loop
        End If
    Set frmPicture.Picture1.Picture = frmPicture.Picture1.Image
    frmPicture.Picture1.Refresh
    SavePicture frmPicture.Picture1.Picture, strImgPath & "\" & 
strFileImg(i) & ".bmp"
Non so se funziona perchè come ho detto l'ho adattata.
Ago.

 Ago.
Grazie Ago. In effetti l'immagine viene ridimensionata ma le dimensioni
della picture rimangono le stesse, comunque non è quello il problema
principale. Il fatto è che la mia applicazione svolge questo processo:
1. scarica le schermate principali di un elenco di siti tramite
controllo WebBrowser
2. l'immagine della schermata (1024x600) viene passata ad un controllo
Picture
3. un controllo Image dovrebbe ridimensionare l'immagine passata dal
Picture avvalendosi della proprietà .stretch=true
4. tale immagine dovrebbe essere salvata così ridimensionata
Comunque il tuo frammento di codice mi è servito per capire come
passare l'handle immagine dal un controllo ad un altro e come usare
PaintPicture.
Grazie mille :-)
Stefano

         frmPicture.Image1.Stretch =3D True
Carica l'immagine in un controllo picture con l'autosize automatico. 
Crei un'altra picture delle dimensioni che vorrai ottenere poi, una 
volta caricata l'immagine nella prima picture:
PicPiccola.PaintPicture PicGrande.Image, 0, 0, PicPiccola.ScaleWidth,
PicPiccola.ScaleHeight
Set PicPiccola.Picture = PicPiccola.Image
SavePicture PicPiccola.Image, "c:\tuonome.bmp"
-- 
If God had intended Man to program, we would be born with serial I/O ports.
News 2000 [v 2.06] - 
http://www.akapulce.net/socket2000

 SavePicture PicPiccola.Image, "c:\tuonome.bmp"
Grazie mille, risolto :-)
Stefano