Seite 1 von 1
Originalgröße einer über URL geladenen Bilddatei bestimmen - wie?
Verfasst: So, 04.08.2019 23:11
von Reth
Hallo zusammen,
ich versuche das Ganze zwar derzeit in LibreOffice - aber habe das Gefühl, das ist kompatibel.
In Calc lade ich via Macro ein Bild über eine URL und lasse es anzeigen (das Macro ist ein Bsp. aus einem OO-Forum und funktioniert in LO ebenfalls super). Nun benötige ich aber die Größe des Originalbildes um es dementsprechend anzeigen zu können. Kann man diese Werte aus der Bilddatei auslesen (jede Datei .jpg, .png, ... bringt diese Informationen ja mit)?
Vielen Dank schon mal!
Ciao
Re: Originalgröße einer über URL geladenen Bilddatei bestimmen - wie?
Verfasst: Mo, 05.08.2019 09:07
von Toxitom
Hey Reth,
na, wenn Du die URL schon hast.... verwende den Service SimpleFileAccess (com.sun.star.ucb.SimpleFileAccess) und dort dann die Methode getSize(sURL) - liefert Dir die Größe der Datei als long in Byte.
Hilft das?
Gruß
Tom
edit: ich schätze, Du brauchtest gar nicht die Größe der Datei... sondern die Bildgröße in Pixeln? Das wird in Basic sicher nicht einfach werden. Für Python gibt es dafür allerdings Bibliotheken - das ist dann leichter.
Re: Originalgröße einer über URL geladenen Bilddatei bestimmen - wie?
Verfasst: Mo, 05.08.2019 09:39
von Reth
Danke!
Toxitom hat geschrieben: ↑Mo, 05.08.2019 09:07
edit: ich schätze, Du brauchtest gar nicht die Größe der Datei... sondern die Bildgröße in Pixeln?
Korrekt
Re: Originalgröße einer über URL geladenen Bilddatei bestimmen - wie?
Verfasst: Mo, 05.08.2019 10:21
von Stephan
Keine Ahnung wie das direkt geht. Zur Not kannst Du ein Dokument erstellen das Bild einfügen und die Werte auslesen:
Code: Alles auswählen
Sub groesse_bestimmen()
dok = StarDesktop.loadComponentFromUrl("private:factory/swriter", "_blank", 0, Array())
addr = ConvertToURL("D:\Bild1.jpg")
t_cur = dok.Text.createTextCursor()
t_cur.gotoStart(False)
Grafik = dok.createInstance("com.sun.star.text.GraphicObject")
With Grafik
.GraphicURL = addr
End With
dok.Text.insertTextContent(t_cur, Grafik, False)
Wait 2000
PB = Grafik.Graphic.SizePixel.Width
PH = Grafik.Graphic.SizePixel.Height
Msgbox "Breite: " & PB & " Pixel" & CHR(13) & "Höhe: " & PH & " Pixel"
End Sub
"Wait 2000" steht dort drin weil LO merklich Zeit braucht um die Grafik im Dokument zu rendern, besser wäre es wohl man fragt den FEhler ab der entsteht wenn "Grafik.Graphic" noch nicht existiert.
Gruß
Stephan