Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
OSSL2Gif
#11
OSSL2Gif Version 2.0.8

Version 2.0.5: Type Hints zu den wichtigsten Funktionen hinzugefügt.
Version 2.0.6: Custom Exceptions - sehr hilfreich für bessere Fehlerbehandlung hinzugefügt.
Version 2.0.7: Randlos funktioniert nicht immer. Es sollte den Rand auf der rechten Seite und den unteren Rand die Transparente oder Einfarbig sein können entfernen, indem die Textur entsprechende Pixel nach rechts und unten über den Rand hinaus skaliert so das sie nach dem Speichern eliminiert sind.
Version 2.0.8: Randlos ist jetzt anders gelöst und alle borderless Funktionen wurden entfernt.

Vorschau: ~66% schneller (keine Skalierung!)
Speichern: Gleichbleibend (Skalierung nur einmal beim Speichern)
Qualität: Identisch (Vorschau zeigt Arbeitsbild, Datei erhält volle Auflösung)


Download Github
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



[-] The following 3 users say Thank You to Manfred Aabye for this post:
  • Bogus Curry, Dorena Verne, Pius Noel
Zitieren
#12
OSSL2Gif Version 2.0.12

Einfache GIF-zu-Textur-Umwandlung.
Mit OSSL2Gif kannst du animierte GIFs einfach in Texturen für Second Life, OpenSim und andere umwandeln – ganz ohne Programmierkenntnisse!

GUI überarbeitet.
Sprachen hinzugefügt: uk, ja , zh
Optimierte Bildaufteilung.

   

Download Github

Schriftbereich war zu klein Version 2.0.12 Bugfix bitte noch einmal herunterladen.
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



Zitieren
#13
OSSL2Gif Version 2.0.14

Einfache GIF-zu-Textur-Umwandlung.
Mit OSSL2Gif kannst du animierte GIFs einfach in Texturen für Second Life, OpenSim und andere umwandeln – ganz ohne Programmierkenntnisse!

Fehlende Symbole in den Gruppen/Überschriften ergänzt (GIF/Textur‑Vorschau, GIF/Textur‑Einstellungen, Datei, Status) und sprachabhängig beibehalten.

Hintergrund/Transparenz komplett neu und konsistent implementiert (zentralisierte Logik, klare Prozent‑Semantik, robustes Config‑Handling, Reset‑Verhalten, Vorschau‑Steuerung).

Debounce für den Transparenz‑Slider eingebaut, damit die GUI beim Ziehen ruhig bleibt.

Bildgrößen‑Schnellwahl wiederhergestellt: freie Werte möglich, Presets in 256er‑Schritten bis 2048, inkl. Config‑Sync und Reset.

Pylance‑Warnung für size_preset_var behoben.

Vorschau‑Regeln angepasst: Reset ohne GIF/Textur lässt Vorschauen leer, Sprachwechsel rendert nicht neu.


Download Github
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



Zitieren
#14
OSSL2Gif Version 2.0.15

Einfache GIF-zu-Textur-Umwandlung.
Mit OSSL2Gif kannst du animierte GIFs einfach in Texturen für Second Life, OpenSim und andere umwandeln – ganz ohne Programmierkenntnisse!

GIF lässt sich nun aus der Zwischenablage mit STRG + V in das Programm kopieren.
Es funktioniert auch mit Grafikadressen und dann mit STRG + V in das Programm kopieren. (Rechte Maustaste im Browser dann "Grafikadresse kopieren")
GIF jetzt auch über "drag and drop" möglich.

   

Download Github
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



Zitieren
#15
OSSL2Gif Version 2.1.1

Jetzt komplett individualisierbar.

Einfache GIF-zu-Textur-Umwandlung.
Mit OSSL2Gif kannst du animierte GIFs einfach in Texturen für Second Life, OpenSim und andere umwandeln – ganz ohne Programmierkenntnisse!

Textur‑Laden eingeführt/überarbeitet: eigener Ladepfad, Statuszeilen‑Feedback statt Popups, GIFs aus dem Textur‑Dialog entfernt, Trennung von gif_frames und Textur‑Quelle (u. a. in file_ops.py und image_processing.py).

Textur‑Preview/Animation: neue SL/OpenSim‑Vorschau implementiert und später so angepasst, dass Textur‑Laden die GIF‑Animation nicht mehr überschreibt (texture_preview.py, image_processing.py, file_ops.py).

GUI/UX: Menüpunkt + Button für „Textur laden“, Klick auf Textur‑Preview lädt Textur, Language‑Update für Button, Whitespaces normalisiert (Emoji‑Spacing fix) (gui_layout.py, main.py).

Konfiguration/Start: manuelles Speichern, frühzeitiges Config‑Laden, Fenster‑Geometrie, Gruppen‑Sichtbarkeit, Drag&Drop, Dark‑Mode/DPI‑Awareness; zusätzliche Config‑Schema‑Aliasen (main.py, config.py, config_manager.py, start.py).

Übersetzungen erweitert (neue Keys, Menüs, Tooltips, Shortcuts) in allen Sprachen (translations.py).

Background‑Transparenz‑Handling konsolidiert und debounced (events.py).

requirements erweitert um tkinterdnd2 (requirements.txt).

Lokale config.json wurde gelöscht.

   

Download Github
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



Zitieren
#16
Es wird noch etwas dauern bis ich hier etwas für Linux beitragen kann. Ich hatte am Wochenende ein anderes Problem, das mich beschäftigt hat.
Zitieren
#17
OSSL2Gif Version 2.1.1
Das Erstellen des Programmes unter Windows, Linux und Mac Test auf Github Servern.
Die ZIP Version OSSL2Gif_2.1.1.zip ist auf meinem Computer unter Windows 11 erstellt.

Download Github
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



[-] The following 2 users say Thank You to Manfred Aabye for this post:
  • Dorena Verne, Mareta Dagostino
Zitieren
#18
Danke, großartige Arbeit, Manni.Smile
[-] The following 1 user says Thank You to Dorena Verne for this post:
  • Manfred Aabye
Zitieren
#19
Wink 
Ich bin nicht sicher ob du das unter Windows für Linux und Mac erstellen kannst. Im PyInsteller Manual steht: "PyInstaller is tested against Windows, macOS, and Linux. However, it is not a cross-compiler; to make a Windows app you run PyInstaller on Windows, and to make a Linux app you run it on Linux, etc". Wenn du es unter WSL (Windows Subsystem for Linux) bildest, dann denke ich, würde es für Linux auch gehen.

Nehme ich unter meinem Ubuntu 24.04 die OSSL2Gif aus deinem linux-x64.zip von heute und starte es mit ./OSSL2Gif dann bekomme ich einen lange Fehlerausgabe (siehe unten). Das Problem damit ist, dass dem PyInstaller eine Konfiguration mit dem Pfad zum PIL Modul fehlt. Es gibt mehrere Möglichkeiten das zu lösen.

Die einfachste Lösung, finde ich, besteht darin pyinstaller mit dem Argument -- add-data den Pfad auf das PIL Package mitzugeben. Das sieht dann so aus:

Code:
pyinstaller --noconfirm --onefile --name OSSL2Gif start.py --add-data .venv/lib/python3.13/site-packages/PIL/:PIL

Das hat allerdings einen kleinen Hacken. Der Pfad enthält die installierte Python-Version. Das heisst sie müsste in deinem Script immer auf die gerade installierte Python-Version angepasst werden. das könnte man ohne viel Aufwand aber im Script automatisieren.

Vielleicht ist dir aufgefallen, dass das bei meinem pyinstaller Befehl die Argumente --windowed und --icon fehlen. Die würden zwar weiter nicht stören, aber es braucht sie auch nicht, da sie von pyinstaller für Linux ignoriert werden.

Unter Debian-basierenden Linux'en ist die Python-Version vorgegeben, wenn man sie mit dem Paketmanager installert. Unter Debian 13 (Trixie) ist es auch die von dir benutzte Version. Unter älteren System aber nicht. Das heisst, dass es mir z.B. auf meinem Ubuntu 24.04 nicht möglich ist den Build fehlerfrei durchlaufen zu lassen, weil die von dir festgelegten Abhängigkeiten mit meiner Python-Version 3.12.3 nicht abgedeckt werden können.

Unter Debian 13 (Trixie) werden für den Build folgende Pakete benötigt:
python3-venv: installiert Python 3 mit venv.
python3-tk: installiert tkinter
libpython3.13: wird von den verschiedenen Paketen benötigt
binutils: wird von pyinstaller benötigt um die Binaries zu erstellen.

Ich habe zur vereinfachten Installation ein Script erstellt. das man im Hauptverzeichnis des Github Repo einsetzen und von dort aus verwenden kann. Das Script installiert die oben erwähnten Pakete, erstellt die venv-Umgebung im Verzeichnis .venv und lädt mit pip alle Abhängigkeiten. Es enthält kein Abfangen von Fehlern und ist zur einmaligen Ausführung gedacht. Das Script berücksichtigt zukünftige Versionen. d.h. sie sind nicht in den Scripten hart-codiert. Im Fall von Fehlern kann man einfach die Verzeichnisse .venv, build und dist löschen.

linux_prepare.sh
Code:
#!/bin/bash
#
# linux_prepare.sh
#
# Installiert alle zum Erstellen der Anwendung OSSL2Gifv2 erforderlichen Linux-Packages
#
# Sicherstellen, dass wir uns im aktuellen Verzeichnis befinden
if [ ! -f ./Py_build_linux.sh ]; then
    Echo "Starten sie Py_build_linux.sh aus dem Wurzelverzeichnis des Projekts, wo es sich befindet." ];
    Echo "Wechseln sie mit 'cd' in das entsprechende Verzeichnis und starten sie mit './Py_build_linux.sh'";
    exit -1
fi

# Wir benötigen eine Basis-Installation von Python 3 mit venv, tk und binutils für pyinstaller
sudo apt install -y python3-venv python3-tk binutils

# Wir benötigen weiter die zur aktuellen Python-Version passenden Python-Bibliotheken.
# Dafür extrahieren vom die ersten zwei Stellen der Python-Versionsnummer.
PV=$(python3 -c "import sys; sa=[str(sys.version_info.major),str(sys.version_info.minor)]; print('.'.join(sa))")
sudo apt install -y libpython$PV

# Falls im aktuellen Verzeichnis nicht vorhanden, richten wir die virtuelle Umgebung ein
if [ ! -d .venv ]; then
    python3 -m venv .venv
fi

# Virtuelle Umgebung aktivieren (falls vorhanden)
if [ -f .venv/bin/activate ]; then
    source .venv/bin/activate
fi

# Jetzt können wir die Abhängigkeiten laden
pip install -r requirements.txt

# Fertig!
echo "Es ist jetzt alles bereit, sie können das Build-Programm mit './Py_build_linux.sh' starten."

exit 0

Für das bestehende Script Py_build_linux.sh habe ich folgenden Änderungsvorschlag:

Py_build_linux.sh
Code:
#!/bin/bash
# Erstellt eine eigenständige ELF aus PyOSSL2Gif/start.py mit allen Abhängigkeiten
# Voraussetzung: Python, pip und pyinstaller müssen installiert sein

# Virtuelle Umgebung aktivieren (falls vorhanden)
if [ -f .venv/bin/activate ]; then
    source .venv/bin/activate
fi

# PyInstaller installieren, falls nicht vorhanden
if ! python3 -m pip show pyinstaller > /dev/null 2>&1; then
    python3 -m pip install pyinstaller
fi

# Erste zwei Stellen der Python-Versionsnummer für PIL-Pfad extrahieren.
PV=$(python3 -c "import sys; sa=[str(sys.version_info.major),str(sys.version_info.minor)]; print('.'.join(sa))")
sudo apt install -y libpython$PV

# ELF bauen (onefile, ohne Konsole, Icon optional)
# pyinstaller --noconfirm --onefile --windowed --name OSSL2Gif PyOSSL2Gif/start.py
# pyinstaller --noconfirm --onefile --windowed --name OSSL2Gif --icon=icon.ico PyOSSL2Gif/start.py
# pyinstaller --noconfirm --onefile --windowed --name OSSL2Gif --icon=icon.ico start.py
pyinstaller --noconfirm --onefile --name OSSL2Gif start.py --add-data .venv/lib/python$PV/site-packages/PIL/:PIL

# Icon ins dist-Ordner kopieren (optional)
if [ -f icon.ico ]; then
    cp -f icon.ico dist/icon.ico
fi

# Hinweis für den Nutzer
if [ -f dist/OSSL2Gif ]; then
    echo
    echo "Fertig! Die ELF befindet sich in dist/OSSL2Gif"
    [ -f dist/icon.ico ] && echo "Icon wurde nach dist kopiert."
else
    echo "Fehler beim Erstellen der ELF!"
fi

Ich habe die beiden Scripte in einem frisch erstellten LXD/LXC Container mit Debian 13 (Trixie) durchlaufen lassen. Alles was ich nach dem ersten Login installiert habe war Git um das Archiv zu klonen und einen Editor (ich nutze normalerweise vim, nicht nano).
  1. Login
  2. sudo apt install git nano
  3. git clone https://github.com/ManfredAabye/OSSL2Gifv2.git
  4. cd OSSL2Gifv2
  5. nano linux_prepare.sh # Datei neu erstellt und bearbeitet
  6. chmod u+x linux_prepare.sh # Berechtigung zum Ausführen gesetzt
  7. nano Py_build_linux.sh # Bestehende Datei bearbeitet
  8. ./ # Datei neu erstellt und bearbeitet
  9. chmod u+x linux_prepare.sh # Berechtigung zum Ausführen gesetzt
  10. nano Py_build_linux.sh # Bestehende Datei bearbeitet
  11. ./linux_prepare.sh # Gestartet und gewartet bis alles Installiert war
  12. Py_build_linux.sh # Gestartet... dauert nict lange

Danach habe ich die Datei dist/OSSL2Gif in das Home Verzechnis meines Desktop Ubuntu kopiert und von dort aus einem Terminalfenster ./OSSLGif gestartet. Es dauerte einen Moment und es hat geklappt!
   

Der Nuzuung des Tools unter Linux steht nichts mehr im Wege. Ich bin gerne behilflich, falls es weitere Unterstützung braucht.

Pius /

Nachtrag:
Die Fehler die ich mit dem entzippten Dowload von Manni erhalten hatte:
Code:
demo@ubuntu:~/Downloads/linux-x64/OSSL2Gif-linux-x64$ ./OSSL2Gif
[WARNING][Thread] Failed to detect keyboard layout or system language: module 'ctypes' has no attribute 'WinDLL'
2026-02-23 18:51:46 - OSSL2Gif - INFO - Starting OSSL2Gif application...
[INFO][Thread] Starting OSSL2Gif application...
[INFO][Thread] ConfigManager registered
[INFO][Thread] Logger registered
[INFO][Thread] Bootstrap complete. Registered services: ['config', 'logger']
[WARNING][Thread] Failed to load icon: TclError: bitmap "icon.ico" not defined
2026-02-23 18:51:46 - OSSL2Gif - ERROR - Fatal error in main application: No module named 'PIL._tkinter_finder'
Traceback (most recent call last):
  File "PIL/ImageTk.py", line 59, in _pyimagingtkcall
_tkinter.TclError: invalid command name "PyImagingPhoto"

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "start.py", line 95, in main
  File "main.py", line 355, in __init__
  File "main.py", line 683, in build_layout
  File "gui_layout.py", line 419, in build_layout
  File "main.py", line 757, in create_effects_panel
  File "gui_layout.py", line 295, in create_effects_panel
  File "ttkbootstrap/style.py", line 5307, in __init__
  File "ttkbootstrap/style.py", line 5397, in update_ttk_widget_style
  File "ttkbootstrap/style.py", line 4366, in create_checkbutton_style
  File "ttkbootstrap/style.py", line 4496, in create_checkbutton_assets
  File "PIL/ImageTk.py", line 132, in __init__
  File "PIL/ImageTk.py", line 188, in paste
  File "PIL/ImageTk.py", line 63, in _pyimagingtkcall
ModuleNotFoundError: No module named 'PIL._tkinter_finder'
[ERROR][Thread] Fatal error in main application: No module named 'PIL._tkinter_finder'
Traceback (most recent call last):
  File "PIL/ImageTk.py", line 59, in _pyimagingtkcall
_tkinter.TclError: invalid command name "PyImagingPhoto"

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "start.py", line 95, in main
  File "main.py", line 355, in __init__
  File "main.py", line 683, in build_layout
  File "gui_layout.py", line 419, in build_layout
  File "main.py", line 757, in create_effects_panel
  File "gui_layout.py", line 295, in create_effects_panel
  File "ttkbootstrap/style.py", line 5307, in __init__
  File "ttkbootstrap/style.py", line 5397, in update_ttk_widget_style
  File "ttkbootstrap/style.py", line 4366, in create_checkbutton_style
  File "ttkbootstrap/style.py", line 4496, in create_checkbutton_assets
  File "PIL/ImageTk.py", line 132, in __init__
  File "PIL/ImageTk.py", line 188, in paste
  File "PIL/ImageTk.py", line 63, in _pyimagingtkcall
ModuleNotFoundError: No module named 'PIL._tkinter_finder'
[INFO][Thread] Services shutdown complete
2026-02-23 18:51:46 - OSSL2Gif - INFO - Application closed
[INFO][Thread] Application closed
Traceback (most recent call last):
  File "PIL/ImageTk.py", line 59, in _pyimagingtkcall
_tkinter.TclError: invalid command name "PyImagingPhoto"

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "start.py", line 107, in <module>
  File "start.py", line 95, in main
  File "main.py", line 355, in __init__
  File "main.py", line 683, in build_layout
  File "gui_layout.py", line 419, in build_layout
  File "main.py", line 757, in create_effects_panel
  File "gui_layout.py", line 295, in create_effects_panel
  File "ttkbootstrap/style.py", line 5307, in __init__
  File "ttkbootstrap/style.py", line 5397, in update_ttk_widget_style
  File "ttkbootstrap/style.py", line 4366, in create_checkbutton_style
  File "ttkbootstrap/style.py", line 4496, in create_checkbutton_assets
  File "PIL/ImageTk.py", line 132, in __init__
  File "PIL/ImageTk.py", line 188, in paste
  File "PIL/ImageTk.py", line 63, in _pyimagingtkcall
ModuleNotFoundError: No module named 'PIL._tkinter_finder'
[PYI-74778:ERROR] Failed to execute script 'start' due to unhandled exception!
demo@ubuntu:~/Downloads/linux-x64/OSSL2Gif-linux-x64$
[-] The following 2 users say Thank You to Pius Noel for this post:
  • Bogus Curry, Manfred Aabye
Zitieren
#20
Meine Linux und Mac Versionen sind gar nicht von mir getestet, da hab ich voll ins Blaue geschossen.
Wenn, Dorena sich bedankt, denke ich das die Mac Version funktioniert.

Ich werde mich mal über Pius Posting stürzen und schauen, was und wie ich da etwas machen kann.
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: Leora Jacobus, Manfred Aabye, 12 Gast/Gäste