jpg durch plugin aufrufen?

Wir haben aktuell ein Problem mit dem Board und arbeiten an der Lösung...


-> Aktuell bereiten wir das Upgrade auf die aktuelle Version 6 von Woltlab vor.
  • hi,


    ich möchte von einem meiner plugins ein jpg aufrufen lassen.


    die box kann jpg anzeigen, aber ich finde den richtigen befehl nicht.


    ich kriegs nur für png hin mittels


    Code
    self["ZeigeBild"] = Pixmap()
    self["ZeigeBild"].instance.setPixmapFromFile(bild_png)


    wie ja auch bei skins darf aber hier nur ein png mit 8bit verwendet werden und ich möchte ganz gerne ein jpg laden lassen.


    könnte mir jemand sagen, wie ich das abändern müsste?


    will nicht so wie ich will :smiling_face_with_horns:


    oh, und falls zufällig noch jemand weiss, wie man bilder vor dem anzeigen auf eine feste grösse proportional skaliert...


    danke euch :)

  • Code
    self.pixmap = LoadPixmap(path + filename)


    Geht für jpg, png und bmp.

    Hilfe gesucht ? schau mal ins Gemini Project WIKI, auch unsere Video Tutorials sind für den Einstieg sehr empfehlenswert


    Nur wer die Weisheit mit Löffeln gefressen hat, kann auch klugscheißen. :klugscheiss:
    Alte asiatische Weisheit (wahrscheinlich Plagiat): Ohne Fleiß kein Scheiß. (Ich übernehme keine Garantie für Fehlerfreiheit der Übersetzung)
    "Alle großen Männer sind bescheiden." Gotthold Ephraim Lessing
    "Ich bin nur einsvierundsechzig"adenin
    "Es reicht nicht, Sachen falsch zu verstehen. Man muss sie richtig falsch verstehen."adenin
    "Friends: You Have 0 Friends"facebook

  • Quote

    Original von adenin

    Code
    self.pixmap = LoadPixmap(path + filename)


    Geht für jpg, png und bmp.


    ich hab wohl noch nen syntaxfehler :frowning_face:


    ich habs zu dem geändert:


    Code
    self["ZeigeBild"] = Pixmap()
    self["TVHeavenFolderImageScreen"].instance.LoadPixmap(folderpng)


    und dann kommt

    Code
    AttributeError: 'ePixmap' object has no attribute 'LoadPixmap'


    und wenn ichs ändere zu

    Code
    self["ZeigeBild"] = LoadPixmap()
    self["TVHeavenFolderImageScreen"].instance.setPixmapFromFile(folderpng)


    dann kommt

    Code
    self["TVHeavenFolderImageScreen"] = LoadPixmap() main thread is non-idle! display spinner! TypeError: LoadPixmap() takes at least 1 argument (0 given)


    aber logischerweise kann ich ja nicht

    Code
    self["ZeigeBild"] = LoadPixmap(folderpng)

    schreiben, bevor folderpng nicht zugewiesen wurde und das erfolgt ja erst in der subroutine, die vo def KeyOk aufgerufen wird.


    sprich, wenn ich den restlichen code mal ausblende, hab ich aktuell das und das geht nur mit png:


    Python
    def __init__(self,session):
    self["ZeigeBildScreen"] = Pixmap()
    
    
    def ZeigeBild(self):
    folderjpg = os.path.join(currDir,'folder.jpg')
    self["TVHeavenFolderImageScreen"].instance.setPixmapFromFile(folderjpg)


    wie müsste man das nun anpassen, damit es funzt?

  • Es gibt ein Plugin Unweterinfo.


    Dort werden jpg's angezeigt.


    Kanst ja mal schauen, wie es dort gemacht wird.


    Gruss Isnagut

    95% der Computerprobleme befinden sich zwischen dem Stuhl und dem Monitor ;).

  • ich komm nicht weiter.


    habs zu dem hier geändert


    Code
    self.folderjpg = loadPic(self.list[self.index], 690, 225, self.aspect, 0, 0, 0)
    self.showPic()
    self["TVHeavenFolderImageScreen"].instance.setPixmap(self.folderjpg)


    dann kommt nur

    Code
    self.folderjpg = loadPic(self.list[self.index], 690, 225, self.aspect, 0, 0, 0) AttributeError: 'TVHeavenAudio' object has no attribute 'list'
    • Official Post
    Python
    from Tools.LoadPixmap import LoadPixmap


    mit dem Modul geht es.


    Du kannst aber auch im MerlinExplorer schauen, bzw. auch das Module des Merlin einbinden.


    Bsp. openpanel.xml:


    das ist dann aber ein Vollbild.
    Zum Einbauen nimmst Du LoadPixmap(...)
    Gruss Emanuel :winking_face:

    no brain no pain! :495:
    Auf gar keinen Fall die GP-Wiki lesen!!
    sie könnte Deinen Kopf zu schwer für Deinen Hals machen :grinning_squinting_face:
    :sonne:458859-modellist-gif


    attachment.php?attachmentid=158292 Wir wollen uns für das Update bedanken!!
    attachment.php?attachmentid=204594

    Edited once, last by emanuel ().

  • also ich komm nicht weiter.


    entweder die module laden dann am ende kein bild oder es kommt ein crash wegen allem möglichen, je nachdem was ich probiere. aber die meisten zeigen nichts an.


    gibt es keinen so einfachen befehl für jpgs wie für png?


    Code
    self["TVHeavenFolderImageScreen"].instance.setPixmapFromFile(folderpng)


    ich nehme mal an, dass

    Code
    self.session.open(PictureExplorer, "/tmp/OoZooNBanner.jpg")


    der aufruf im merlinexplorer ist, ich dann aber eine seiner klassen einbauen müsste?
    finde vom merlinexplorer nämlich nur die .pyc


    wenn möglich würd ichs gerne mit nem import eines enigma moduls machen.



    edit:
    hab jetzt mal

    Code
    [code]self["TVHeavenFolderImageScreen"].instance.setLoadPixmap(folderpng)

    [/CODE] probiert. auch nix.

  • p.s.: vielleicht bis wir ne lösung finden:


    wie kann ich festlegen, wie gross das bild am ende sein soll, sprich auf welche grösse es skaliert werden soll? bevorzugt möchte ich nur breite ODER höhe definieren müssen, damit das bild proportional bleibt.


    Code
    self["ZeigeBild"] = Pixmap()  self["ZeigeBild"].instance.setPixmapFromFile(bild_png)
    • Official Post

    vom MerlinExplorer :guckstdu: da


    wirst Du fündig (jpeg und scale)


    Gruss Emanuel :winking_face:

  • danke schön :)


    habs gerade mal schnell probiert und habe es jetzt hinbekommen ein jpg zu laden.
    seltsamerweise sind die ladezeiten EXTREM unterschiedlich. und es kommt auch nicht auf die dateigrösse an.
    ein 500kB 1280x720 jpg lädt <1s und ein anderes, 550kB 1280x720 lädt 20s


    was aber partout nicht klappen will ist das laden von zwei jpeg nebeneinander. sprich an zwei positionen im screen soll ein jpeg eingebaut werden. ich kann jedes einzeln laden (indem ich im code das andere auskommentiere), aber sobald ich beide laden will kommts zum crash (ohne ersichtliche fehlermeldung).


    es muss an der def DecodeActions liegen, denn ich kann den code komplett lassen wie er ist, sobald ich in der DecodeActions ein zweites jpg aufrufen lassen will kommts zum dauerspinner und dann crash.


    hat einer ne ahnung, wie man das korrigieren könnte? hier mal der code:


    braucht man ein waitFinished oder sonstwas?

    • Official Post

    sollte doch gehen. Ich kann Dir da nur das Kicker plugin empfehlen von barabas.


    aber der src ist schon "seeeeeeeeeehr anspruchsvolle Lektüre" :gutenmorgen: :tongue:


    da werden oft zwei Bilder (Banner fest, Sportbild beim Zappen mit dynamischer Wechsel) verwendet, da wirst Du sicher fündig. Du schafst das schon :grinning_squinting_face:


    Gruss Emanuel :winking_face:

    no brain no pain! :495:
    Auf gar keinen Fall die GP-Wiki lesen!!
    sie könnte Deinen Kopf zu schwer für Deinen Hals machen :grinning_squinting_face:
    :sonne:458859-modellist-gif


    attachment.php?attachmentid=158292 Wir wollen uns für das Update bedanken!!
    attachment.php?attachmentid=204594

    Edited 2 times, last by emanuel ().

  • wenn ich das richtig sehe werden da aber nie zwei bilder auf einmal, sprich in einer klasse gleichzeitig geladen.
    sondern ein bild ist statisch und eins dynamisch.


    bei mir sind 2jpeg jeweils dynamisch...später eventuell sogar mehr...



    seltsam. ich sehe da keinen fehler in meinem geposteten code.
    systemüberlastung wäre eventuell möglich...
    gibts ne möglichkeit eine art wait until finished einzubauen?

  • so, hat sich alles erledigt.
    habs komplett umgeschrieben und jetzt passts. musste halt alle definitions neu schreiben.