[Risolto] immagini in proporzione

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
ilkappa
Messaggi: 39
Iscritto il: mercoledì 1 febbraio 2017, 12:52

[Risolto] immagini in proporzione

Messaggio da ilkappa »

Probabilmente Calc non è pensato per gesire le immagini ma.. indipendentemente da questo e grazie al vostro aiuto, avevo inserito nel foglio che utilizzo una macro per gestire le immagini.
Ora ho modificato questo foglio modificando la macro originale in modo che acquisisca le immagini da diverse cartelle.

Il problema è che nella macro originale, viene utilizzata questa funzione

Codice: Seleziona tutto

Sub resizeImageByWidth(ImageCmp As Object, Larg As Long, alt as long)
Dim imageInfo As Object, Proporzione As Double, SizeImage As Object
'Dim size As New com.sun.star.awt.Size
imageInfo = ImageCmp.Graphic
SizeImage = imageInfo.SizePixel
SizeImage.Width = Larg
SizeImage.Height = alt
ImageCmp.Size = SizeImage
End Sub
che si occupa di ridimensionare le immagini. I valori impostati in pixel vengono passati in modo fisso. Ma avendo immagini di differenti misure e volendo rispettare le proporzioni, come devo modificare?
Cercando online ho trovato tra le api la funzione getSize che puntualmente restituisce (indipendentemente dall'immagine passata) valore 100 e 100 per W ed H.
Conoscete una funzione che legga le dimensioni originali del file imagine per poi procedere con la realizzazione del calcolo della proporzione?
Ultima modifica di charlie il mercoledì 22 marzo 2017, 13:49, modificato 3 volte in totale.
Motivazione: Aggiunta spunta verde
OpenOffice 3.1 su Ubuntu 16.04
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: CALC e le immagini

Messaggio da patel »

usa la funzione resizeImageByWidth(Image,Larghezza), se hai difficolta allega tutta la macro
Ultima modifica di patel il mercoledì 22 marzo 2017, 11:59, modificato 1 volta in totale.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
ilkappa
Messaggi: 39
Iscritto il: mercoledì 1 febbraio 2017, 12:52

Re: CALC e le immagini

Messaggio da ilkappa »

Va be... mentre lo scrivevo mi è venuta la risposta.

la macro usata è questa:

Codice: Seleziona tutto

Sub resizeImageByWidth(ImageCmp As Object, maxlarg As Long, maxalt as long)
Dim imageInfo As Object, Proporzione As Double, SizeImage As Object
'Dim size As New com.sun.star.awt.Size
imageInfo = ImageCmp.Graphic
SizeImage = imageInfo.SizePixel
Orsize=imageInfo.getSize()
if Orsize.Width > Orsize.Height Then
	Multiplo=maxlarg / Orsize.Width
	'msgbox "Larghezza" & Multiplo
endif
if Orsize.Width < Orsize.Height Then
	Multiplo=maxalt / Orsize.Height
	'msgbox "Altezza" & Multiplo
endif
SizeImage.Width = Orsize.Width * Multiplo
SizeImage.Height = Orsize.Height * Multiplo
ImageCmp.Size = SizeImage
End Sub
In pratica usto imageInfo che legge direttamente l'immagine originale per conoscere le due dimensioni, ho modificato i parametri inviati come fissi in parametri massimi e in base al lato più lungo creo il massimo comune multiplo (ma esiste) per avvicinarmi il più possible alla cifra massima.
Cosi le immagini rispetteranno le proporzioni originali
OpenOffice 3.1 su Ubuntu 16.04
Rispondi