Originalgröße einer über URL geladenen Bilddatei bestimmen - wie?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Reth
*
Beiträge: 12
Registriert: Sa, 24.04.2010 09:24

Originalgröße einer über URL geladenen Bilddatei bestimmen - wie?

Beitrag 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
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Originalgröße einer über URL geladenen Bilddatei bestimmen - wie?

Beitrag 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.
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Reth
*
Beiträge: 12
Registriert: Sa, 24.04.2010 09:24

Re: Originalgröße einer über URL geladenen Bilddatei bestimmen - wie?

Beitrag 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
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Originalgröße einer über URL geladenen Bilddatei bestimmen - wie?

Beitrag 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
Antworten