19/05/2023: A causa di un errore sono stati cancellati, insieme ad account creati da bot, alcuni account legittimi. Si prega di leggere qui: https://www.gambas-it.org/smf/index.php?topic=9733.0
Dim $ImScala As ImageDim $ImScalata As Image$ImScala = Image.Load(User.Home &/ "MyReport/MyLogo.png")$ImScalata = $ImScala.Stretch(150, 100)$ImScalata.Save(User.Home &/ "MyReport/MyLogo.png", 100)
Restando al tuo esempio, direi:la Larghezza originale sta alla larghezza scalata come l'altezza originale sta all'altezza scalata incognita. h = (1200 * 150) / 1600
Dim l As IntegerDim h As Integer l = ImageStat.Width(User.Home &/ "MyReport/.MyLogo.png") h = ImageStat.Height(User.Home &/ "MyReport/.MyLogo.png") Print l Print h
ma non funziona, cosa sbaglio?
Dim l As IntegerDim h As Integer l = ImageStat(User.Home &/ "MyReport/.MyLogo.png").Width h = ImageStat(User.Home &/ "MyReport/.MyLogo.png").Height Print l Print h
Citazione da: ilfurlan - 03 Marzo 2017, 00:09:50ma non funziona, cosa sbaglio?Devi utilizzare "ImageStat" come funzione statica, ed in particolare le previste proprietà dell'oggetto di tipo ImageStat, da essa ritornato.Più brevemente insomma così:Codice: [Seleziona]Dim l As IntegerDim h As Integer l = ImageStat.Width(User.Home &/ "MyReport/.MyLogo.png").Width h = ImageStat.Height(User.Home &/ "MyReport/.MyLogo.png").Height Print l Print h
Dim l As IntegerDim h As Integer l = ImageStat.Width(User.Home &/ "MyReport/.MyLogo.png").Width h = ImageStat.Height(User.Home &/ "MyReport/.MyLogo.png").Height Print l Print h
Incredibile, è notte e sei ancora qui a rispondere....
Citazione da: vuott - 03 Marzo 2017, 00:22:28Citazione da: ilfurlan - 03 Marzo 2017, 00:09:50ma non funziona, cosa sbaglio?Devi utilizzare "ImageStat" come funzione statica, ed in particolare le previste proprietà dell'oggetto di tipo ImageStat, da essa ritornato.Più brevemente insomma così:Codice: [Seleziona]Dim l As IntegerDim h As Integer l = ImageStat.Width(User.Home &/ "MyReport/.MyLogo.png").Width h = ImageStat.Height(User.Home &/ "MyReport/.MyLogo.png").Height Print l Print h
Public Sub Button1_Click()Dim $ImLarghezza As IntegerDim $ImAltezza As IntegerDim $Incognita As Integer 'incognita per trovare la larghezza o l'altezza da scalare proporzionalmenteDim $ImScala As ImageDim $ImScalata As Image $ImLarghezza = ImageStat(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg").Width 'legge la larghezza dell'immagine If $ImLarghezza > 350 Then 'controlla se è superiore a quella voluta $Incognita = ($ImAltezza * 350) / $ImLarghezza 'calcola la giusta altezza proporzionale $ImScala = Image.Load(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg") 'legge l'immagine $ImScalata = $ImScala.Stretch(350, $Incognita) 'scala l'immagine con il valore dato all'altezza $ImScalata.Save(User.Home &/ "ScalaImmagine/ImmagineScalata.jpg", 100) 'salva l'immagine scalata Endif $ImAltezza = ImageStat(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg").Height 'legge la altezza dell'immagine If $ImAltezza > 150 Then 'controlla se è superiore a quella voluta $Incognita = ($ImLarghezza * 150) / $ImAltezza 'calcola la giusta larghezza proporzionale $ImScala = Image.Load(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg") 'legge l'immagine $ImScalata = $ImScala.Stretch($Incognita, 150) 'scala l'immagine con il valore dato alla larghezza $ImScalata.Save(User.Home &/ "ScalaImmagine/ImmagineScalata.jpg", 100) 'salva l'immagine scalata Endif PictureBoxScalata.Picture = Picture.Load(User.Home &/ "ScalaImmagine/ImmagineScalata.jpg")End
$ImLarghezza = ImageStat(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg").Width 'legge la larghezza dell'immagine If $ImLarghezza > 350 Then 'controlla se è superiore a quella voluta $Incognita = ($ImAltezza * 350) / $ImLarghezza 'calcola la giusta altezza proporzionale
Public Sub Button1_Click()Dim $ImLarghezza As IntegerDim $ImAltezza As IntegerDim $Incognita As Integer 'incognita per trovare la larghezza o l'altezza da scalare proporzionalmenteDim $ImScala As ImageDim $ImScalata As Image $ImLarghezza = ImageStat(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg").Width 'legge la larghezza dell'immagine $ImAltezza = ImageStat(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg").Height 'legge la altezza dell'immagine If $ImLarghezza > 350 Then 'controlla se è superiore a quella voluta $Incognita = ($ImAltezza * 350) / $ImLarghezza 'calcola la giusta altezza proporzionale $ImScala = Image.Load(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg") 'legge l'immagine $ImScalata = $ImScala.Stretch(350, $Incognita) 'scala l'immagine con il valore dato all'altezza $ImScalata.Save(User.Home &/ "ScalaImmagine/ImmagineScalata.jpg", 100) 'salva l'immagine scalata Endif If $ImAltezza > 150 Then 'controlla se è superiore a quella voluta $Incognita = ($ImLarghezza * 150) / $ImAltezza 'calcola la giusta larghezza proporzionale $ImScala = Image.Load(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg") 'legge l'immagine $ImScalata = $ImScala.Stretch($Incognita, 150) 'scala l'immagine con il valore dato alla larghezza $ImScalata.Save(User.Home &/ "ScalaImmagine/ImmagineScalata.jpg", 100) 'salva l'immagine scalata Endif PictureBoxScalata.Picture = Picture.Load(User.Home &/ "ScalaImmagine/ImmagineScalata.jpg")End
Dim immagine, imLav As Image Dim alt, larg As Integer Dim sPathOrig, sPathDest As String ' Inserire un'immagine e una path esistente sPathOrig = "~/Immagini/Mr._Sparkle.png" sPathDest = "~/Immagini/Mr._Sparkle_Piccolo.png" immagine = Image.Load(sPathOrig) alt = immagine.H \ 3 larg = immagine.W \ 3 immagine = immagine.Stretch(larg, alt) imLav = New Image(larg, alt) immagine = imLav.DrawImage(immagine, 0, 0, larg, alt) immagine.Save(sPathDest)
Codice: [Seleziona] $ImLarghezza = ImageStat(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg").Width 'legge la larghezza dell'immagine If $ImLarghezza > 350 Then 'controlla se è superiore a quella voluta $Incognita = ($ImAltezza * 350) / $ImLarghezza 'calcola la giusta altezza proporzionalePremesso che non ho gambas installato su questo computer e non posso fare dei test.Quando cerchi di calcolare $Incognita non ottieni un risultato valido perchè $ImAltezza non è ancora definita (valore 0).Prova a modificare il codice così:Codice: [Seleziona]Public Sub Button1_Click()Dim $ImLarghezza As IntegerDim $ImAltezza As IntegerDim $Incognita As Integer 'incognita per trovare la larghezza o l'altezza da scalare proporzionalmenteDim $ImScala As ImageDim $ImScalata As Image $ImLarghezza = ImageStat(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg").Width 'legge la larghezza dell'immagine $ImAltezza = ImageStat(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg").Height 'legge la altezza dell'immagine If $ImLarghezza > 350 Then 'controlla se è superiore a quella voluta $Incognita = ($ImAltezza * 350) / $ImLarghezza 'calcola la giusta altezza proporzionale $ImScala = Image.Load(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg") 'legge l'immagine $ImScalata = $ImScala.Stretch(350, $Incognita) 'scala l'immagine con il valore dato all'altezza $ImScalata.Save(User.Home &/ "ScalaImmagine/ImmagineScalata.jpg", 100) 'salva l'immagine scalata Endif If $ImAltezza > 150 Then 'controlla se è superiore a quella voluta $Incognita = ($ImLarghezza * 150) / $ImAltezza 'calcola la giusta larghezza proporzionale $ImScala = Image.Load(User.Home &/ "ScalaImmagine/ImmagineOriginale.jpg") 'legge l'immagine $ImScalata = $ImScala.Stretch($Incognita, 150) 'scala l'immagine con il valore dato alla larghezza $ImScalata.Save(User.Home &/ "ScalaImmagine/ImmagineScalata.jpg", 100) 'salva l'immagine scalata Endif PictureBoxScalata.Picture = Picture.Load(User.Home &/ "ScalaImmagine/ImmagineScalata.jpg")End