Was ist der UseJTAImageDecoder() und wie entfernt man den?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
The_Dark_Zim-.-
Beiträge: 372
Registriert: 18.03.2008 16:53

Was ist der UseJTAImageDecoder() und wie entfernt man den?

Beitrag von The_Dark_Zim-.- »

Hey,
ich habe seit einiger Zeit das Problem, dass bei einem meiner Fenster/Forms folgende Zeile ergänzt wird "UseJTAImageDecoder()". Das Teil gibt es scheinbar aber gar nicht und entsprechend kann ich nicht Compilieren, bis ich das wieder entferne. Hat das mal einer gehabt und weiß wie ich das verhindern kann? Ich nutze den Fensterdesigner von PureBasic.

Ich benutze zur Zeit PureBasic in der Version 5.72 x64 unter Linux. Ich habe gerade nicht mehr im Kopf ob es auch unter Windows auftritt.

Mit freundlichen Grüßen
Zim
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Benutzeravatar
The_Dark_Zim-.-
Beiträge: 372
Registriert: 18.03.2008 16:53

Re: Was ist der UseJTAImageDecoder() und wie entfernt man de

Beitrag von The_Dark_Zim-.- »

Hey,

ich habe den Grund ausfindig machen können. Aber ich verstehe nicht warum es so ist. Ich habe bei mir die Grafik "vd_textgadget.png" eingebunden und das verursacht dieses verhalten bei mir. Ich habe es aus dem "SilkTheme.zip" Archiv, welches PureBasic mitbringt. Kann das einer von euch reproduzieren?

Einfach ein neues Fenster mit ImageGadget erstellen und hier diese Grafik einbinden, wenn man jetzt von dem Grafischen in die Code Ansicht wechselt müsste die Zeile "UseJTAImageDecoder()" vorhanden sein.

Mit freundlichen Grüßen
Zim
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Was ist der UseJTAImageDecoder() und wie entfernt man de

Beitrag von NicTheQuick »

Ich arbeite mit dem Formdesigner nicht. Aber falls das dein einziges PNG-Bild ist, das du benutzt, vermute ich einfach einen Bug in der Codegenerierung oder gar einfach nur einen Tippfehler. Vermutlich sollte einfach nur UsePNGImageDecoder() eingebunden werden. Von einem UseJTAImageDecoder() habe ich jedenfalls auch noch nie gehört.
Bild
Benutzeravatar
The_Dark_Zim-.-
Beiträge: 372
Registriert: 18.03.2008 16:53

Re: Was ist der UseJTAImageDecoder() und wie entfernt man de

Beitrag von The_Dark_Zim-.- »

Ich habe noch mal ein wenig experimentiert. Unter Windows 10 gleiches Problem. Wenn ich das Bild nachbaue, Ist ja einfach ein 16x16 Bild mit einem "A" und transparenten Hintergrund, bekomme ich das gleiche Resultat. Nutze ich eine andere Grafik ist alles okay. Z. B. das für Hyperlinks.

@NicTheQuick Ich habe mehrere png's in Verwendung die alle keine Probleme machen. Er setzt UsePNGImageDecoder() und darunter direkt UseJTAImageDecoder().

Beispiel:

Code: Alles auswählen

Global Window_3

Global Image_0

Global Img_Window_3_0

UsePNGImageDecoder()
UseJTAImageDecoder()

Img_Window_3_0 = LoadImage(#PB_Any,"/<pfad>/vd_textgadget.png")


Procedure OpenWindow_3(x = 0, y = 0, width = 600, height = 400)
  Window_3 = OpenWindow(#PB_Any, x, y, width, height, "", #PB_Window_SystemMenu)
  Image_0 = ImageGadget(#PB_Any, 80, 80, 16, 16, ImageID(Img_Window_3_0))
EndProcedure

Procedure Window_3_Events(event)
  Select event
    Case #PB_Event_CloseWindow
      ProcedureReturn #False

    Case #PB_Event_Menu
      Select EventMenu()
      EndSelect

    Case #PB_Event_Gadget
      Select EventGadget()
      EndSelect
  EndSelect
  ProcedureReturn #True
EndProcedure
<pfad> ist für das Beispiel nur eingesetzt, weil wegen Geheim und so :D
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Benutzeravatar
helpy
Beiträge: 635
Registriert: 29.08.2004 13:29

Re: Was ist der UseJTAImageDecoder() und wie entfernt man de

Beitrag von helpy »

NicTheQuick hat geschrieben:... Bug in der Codegenerierung ...
Das wird es wohl sein! Der FormDesigner der PureBasic IDE generiert diesen Code!
Windows 10
PB Last Final / (Sometimes testing Beta versions)
Benutzeravatar
The_Dark_Zim-.-
Beiträge: 372
Registriert: 18.03.2008 16:53

Re: Was ist der UseJTAImageDecoder() und wie entfernt man de

Beitrag von The_Dark_Zim-.- »

Ja, schon klar das die Codegenerierung das ist... Aber warum bei dem Bild bzw. dieser Art von Bild, wenn es bei den anderen kein Problem gibt.
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Benutzeravatar
helpy
Beiträge: 635
Registriert: 29.08.2004 13:29

Re: Was ist der UseJTAImageDecoder() und wie entfernt man de

Beitrag von helpy »

Das liegt an der IDE! Siehe folgenden Code im Github-Repo:
==> https://github.com/fantaisie-software/p ... #L218-L234

Im Quellcode des FormDesigners sind gleich zwei Fehler enthalten.
(1) Wenn der Dateiname (nicht nur die Extension) den String "tga" enthält, wird die boolsche Variable "tgadecoder" gesetzt (siehe Zeile 218).
(2) Wenn "tgadecoder" gesetzt ist, dann wird im Code der Befehl "UseJTAImageDecoder()" hinzugefügt (siehe Zeile 233).

Korrektur des PureBasic-Quellcodes:
(1) Statt den gesamten Dateinamen auf den String "tga" zu prüfen, dürfte nur die Extension geprüft werden. Dies gilt auch für die Strings "jpg", "jpeg", "tiff" und "png"!
(2) Statt UseJTAImageDecoder() müsste UseTGAImageDecoder() hinzugefügt werden!

Gruß aus Niederbayern!
Windows 10
PB Last Final / (Sometimes testing Beta versions)
Benutzeravatar
helpy
Beiträge: 635
Registriert: 29.08.2004 13:29

Re: Was ist der UseJTAImageDecoder() und wie entfernt man de

Beitrag von helpy »

Vorläufiger Workaround für Dein PNG-Bild: Den Dateinamen umbenennen :-D
Windows 10
PB Last Final / (Sometimes testing Beta versions)
Benutzeravatar
mk-soft
Beiträge: 3701
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Was ist der UseJTAImageDecoder() und wie entfernt man de

Beitrag von mk-soft »

Habe es mal bei mir un der Linux mit World.png Bild probiert und es tritt nicht auf.
Gehe mal im FormDesigner in den Bildmanager. Vielleicht ist dort Müll drin.

Ah ja, ich verwende meinen eigenen PB-IDE Build mit den Bug-Fixes ...

P.S.
@helpy,
wenn ich Zeit habe, korregiere ich es in meinen PB-IDE Build ...
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
helpy
Beiträge: 635
Registriert: 29.08.2004 13:29

Re: Was ist der UseJTAImageDecoder() und wie entfernt man de

Beitrag von helpy »

mk-soft hat geschrieben:Habe es mal bei mir un der Linux mit World.png Bild probiert und es tritt nicht auf.
Gehe mal im FormDesigner in den Bildmanager. Vielleicht ist dort Müll drin.
Das png von World.png in tga_world.png umbenennen, dann wird wohl Fehler mit der Standard-IDE/FormDesigner auftreten.
Windows 10
PB Last Final / (Sometimes testing Beta versions)
Antworten