mit FileControl Bild-Datei auswählen -> in ImageControl

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: mit FileControl Bild-Datei auswählen -> in ImageControl

[gelöst]mit FileControl Bild-Datei auswählen -> in ImageCont

von Lagerregal » Fr, 12.08.2011 21:20

Ja, das stimmt, sie gehen.
Fast :-D
Ich habe meine tga-Dateien mit Gimp erstellt und abgespeichert. Dabei hab ich die RLE-Komprimierung, die standardmäßig an ist, auch an gelassen.
Warscheinlich kann OOo-Basic diese nicht richtig dekomprimieren und kann daher das Bild nicht anzeigen.
Wenn ich die tga-Datei ohne der RLE-Komprimierung abspeichere, kann mein ImageControl1-Feld auch die tga-Dateien 1-A anzeigen.
Problem gelöst, vielen Dank :-)

edit: Doppelt gemoppelt, danke für das Ausprobieren bei Gimp, hatte ich auch gerade, war aber zu langsam beim Posten :-)
edit2: Falls noch jemand Interesse hat, was RLE-Komprimierung ist: http://de.wikipedia.org/wiki/Laufl%C3%A4ngenkodierung

Re: mit FileControl Bild-Datei auswählen -> in ImageControl

von F3K Total » Fr, 12.08.2011 21:08

Hallo,
habe gerade Folgendes ausprobiert:
speichere ich aus Gimp ein .png nach .tga mit RLE-Kompression
tga_mit_RLE.png
tga_mit_RLE.png (14.43 KiB) 1237 mal betrachtet
kann ich es nicht öffnen,
ohne RLE-Kompression klappts prima und läßt sich auch mit dem Dialog anzeigen?!?
tga_ohne_RLE.png
tga_ohne_RLE.png (17.78 KiB) 1237 mal betrachtet
Gruß R

Edit: Das dein Code noch der alte war, ist unwahrscheinlich. Wenn Du das Dokument gespeichert hast. Es sei denn, Du hast Dich in der Makro Library geirrt, es gibt eine "Standard", die dem geöffneten Dokument zugeordnet ist, und eine "Standard", unter "Meine Makros" die quasi auf dem Rechner ist, und allen geöffneten Dateien zur Verfügung steht, dann aber nur auf "DEM" Rechner.

Re: mit FileControl Bild-Datei auswählen -> in ImageControl

von turtle47 » Fr, 12.08.2011 20:30

Hallo,
Lagerregal hat geschrieben:Wenn ich meine tga-Datei einbinden will, macht er das nicht - unterstützt OOo-basic kein *.tga-Format??
TGA-Format sollte gehen:
TGA.jpg
TGA.jpg (35.93 KiB) 1243 mal betrachtet
Gruß
Jürgen

Re: mit FileControl Bild-Datei auswählen -> in ImageControl

von Lagerregal » Fr, 12.08.2011 20:11

Lösung ist unten, eine Frage bleibt noch:

Wenn ich meine tga-Datei einbinden will, macht er das nicht - unterstützt OOo-basic kein *.tga-Format??
Das wäre ja ziemlich suboptimal. Oder gibt es eine Routine/ein Tool, mit dem man das umgehen kann?
Ich hab sehr viele tga-Dateien (Tumbnail-artig, aber mit benötigtem Alpha-kanal für mein C-Programm) deren Dateinamen und ihr Bild ich einlesen müsste - wenn OOo-Basic kein tga-Format unterstützt, müsste ich jedes Bild sowohl als tga, als auch für OOo-Basic als z.B jpg abspeichern lassen.


so, nach einigem Rumprobieren und Nachforschen hat mich deine Antwort zur Lösung des in Anfangsthreads gebracht.
Falls noch jmd das Problem hatte, hier die Lösung:

Code: Alles auswählen

ofilepicker=dlg.GetControl("FileControl1")
fensterchen=dlg.GetControl("ImageControl1")
fensterchen.model.imageurl=ConvertToURL(ofilepicker.text)
bildname=GetFileNameWithoutExtension(ofilepicker.text,"\")
mycell = mysheet.getCellRangeByName("$D$4")
mycell.string = bildname
in der main muss dann noch

Code: Alles auswählen

GlobalScope.BasicLibraries.LoadLibrary("Tools")
eingebunden werden.

edit: kann es sein, dass man den Basic-Code nochmal extra abspeichern muss? Wenn ich die calc-Mappe abspeicher und wieder öffne, hat er zwar die Veränderungen in der calc-Tabelle, die durch den letzten Test des Codes hervorgerufen wurden, abgespeichert, aber mein Code war noch der Alte von vor dem letzten Öffnen.

edit: WOW! Vielen Dank für dein Beispiel! So viel Hilfe hatte ich garnicht erwartet, ich hoffe ich kann mein Programm fertigstellen, dann werde ich es mal uploaden, sodass auch andere Neulinge daraus profitieren können (kann aber noch etwas dauern ;-) )

Re: mit FileControl Bild-Datei auswählen -> in ImageControl

von F3K Total » Fr, 12.08.2011 19:56

Ich habe mal ein Beispiel drangehängt.
Viel Spaß damit
Gruß R
Dateianhänge
Dialog_pick_Image.odt
(11.97 KiB) 140-mal heruntergeladen

Re: mit FileControl Bild-Datei auswählen -> in ImageControl

von F3K Total » Fr, 12.08.2011 17:51

Hallo,
angenommen der Dialog heißt "dlg"
der Filselector im Dialog heiß "filepicker"
dann gehts so:

Code: Alles auswählen

ofilepicker=dlg.GetControl("filepicker")
MyControl.model.imageurl=ConverttoURL(ofilepicker.text)
Gruß R

Edit: ConverttoURL nötig

mit FileControl Bild-Datei auswählen -> in ImageControl

von Lagerregal » Fr, 12.08.2011 17:28

Hallo, da bin ich trotz Suche im www wieder...

In meinem Dialog habe ich ein FileControl-Objekt, mit dem der Benutzer eine Bild-Datei auf seiner Festplatte auswählen soll, da deren Name benötigt wird.
Der Name dieser Datei sollte in einem String abgespeichert werden und das Bild in einem ImageControl-Objekt im Dialog angezeigt werden.

Im "StarBasic / OpenOffice.org Basic FAQ" fand ich zu dem ImageControl nur die Möglichkeit, eine fixe Url zu der Bilddatei angeben zu können.

Code: Alles auswählen

MyControl.model.imageurl="file:///C:/Programme/StarOffice6.1/share/gallery/bullets/poliball.gif"
Nun war meine Idee, dass ich die Url als string aus dem FIleControl-Objekt auslese und diesen String dann verwende, um
a) den Dateinamen herauszubekommen und b) das Bild im ImageControl eintragen zu lassen.

Doch nun tauchen die Probleme auf - zum Einen müsste ich wissen, wie ich aus der Dateiauswahl die Url bekomme.
Die OOo-Basic-Hilfe war mit "Dateiauswahl Erzeugt eine Schaltfläche für die Dateiauswahl." nicht gerade ergiebig. Beim oben genannten FAQ fand ich auch nichts dergleichen, mein Problem ist warshc. zu simpel dafür.
Zum anderen müsste das ImageControl-Feld "bescheid bekommen" sobald eine Datei gewählt wurde, um ihr Image dem Pfad entsprechen zu aktualisieren.

Und zu guter letzt müsste ich aus dem string, in dem die url ist, den Dateinamen herauslesen.
Dh. ich müsste den string von rechts nach links auf slash's durchsuchen, beim ersten gefundenen den string teilen. Ersten Teil verwerfen und der zweite Teil wäre mein Dateiname - aber das geht doch bestimmt auch einfacher? Würd mir jemand ein Tip geben, wie?
Viele Dank für eure Geduld!

Nach oben