Salve a tutti
Ho la necessità di inserire una fotografia all'interno di una PictureBox.
Il mio problema sta nel riuscire a ridimensionare l'immagine in base alle dimensioni della PictureBox contenitore.
Ho preso una vecchia procedura creata dal mio capo che dovrebbe fare tutto questo... ma non va'; in pratica sembra che tutto funzioni, ma l'immagine non viene affatto ridimensionata in base alla PictureBox.
Sapreste darmi una mano? è un po' che ci sbatto la testa, e sono sicura che la cosa è banale, ma ormai ne ho la testa piena e non scoverò mai l'errore...
grazie a tutticodice:'NEL FORM 'ho una picture box con dimensioni fisse 'nella sezione dichiarazioni ho dichiarato 2 costanti: Const cstLngAltPCBox As Long = 3735 Const cstLngLargPCBox As Long = 4455 'nella sub che carica l'immagine chiamo la sub che la ridimensiona ' e che si trova su un modulo di classe Private Sub InserisciFotografia() 'carico i dati dal db, creo il file immagine ... ' Assegna il file creato alla picturebox pcFoto ' strPerc è il percorso del file immagine sull'HD ' Carica l'immagine pcFoto.Picture = LoadPicture(strPerc) ' Riassegna l'altezza e la larghezza alla PictureBox pcFoto.Width = cstLngLargPCBox pcFoto.Height = cstLngAltPCBox ' Chiama la sub che dimensiona l'immagine ' in modo che entri all'interno della PictureBox ' pcFoto è l'oggetto PictureBox, ' lngLarg è la larhgezza del controllo e ' lngAlt la sua altezza ' l'immagine non può superare le dimensioni ' dell'oggetto PictureBox che la contiene ' clsFile è il modulo di classe che gestisce l'immagine Call clsFile.DimensionaImmagine(pcFoto, _ cstLngLargPCBox, cstLngAltPCBox) End Sub '********************************** ' NEL MODULO DI CLASSE ' Ridimensiona l'immagine in base alle dimensioni dell'oggetto ' PictureBox presente nel form form Public Sub DimensionaImmagine(ByVal pcFotografia As PictureBox, _ ByVal lngLargMax As Long, _ ByVal lngAltMax As Long) Dim lngLargImg As Long, lngAltImg As Long, Dim lngLarg As Long, lngAlt As Long ' Prende le dimensioni dell'immagine contenuta ' nel controllo PictureBox lngLargImg = pcFotografia.Picture.Width lngAltImg = pcFotografia.Picture.Height ' Rapporta le dimesioni dell'immagine ' con quelle dell'oggetto PictureBox contenitore If lngLargImg < lngLargMax And lngAltImg < lngAltMax Then pcFotografia.AutoSize = False Else lngAlt = lngAltImg / (lngLargImg / lngLargMax) If lngAlt <= lngAltMax Then pcFotografia.Height = lngAltMax pcFotografia.Width = lngLargMax Else pcFotografia.Height = lngAltMax pcFotografia.Width = lngLargImg / (lngAltImg / lngAltMax) End If End If End Sub




Rispondi quotando