• Leider habe ich heute noch einen kritischen Bug in der Version 0.7.21 entdeckt: Diesmal in der Library, welche für das Schreiben von GIF-Dateien zuständig ist. :cursing:

    Demnach werden beim speichern zu jeder GIF-Datei ca. 2048 Bytes an Datenmüll angehangen. Das tückische daran ist, dass sich die GIF-Datei mit verschiedenen Programmen ohne Weiteres Öffnen lässt. Sie ist einfach nur zu groß und die letzte Blockgröße stimmt nicht (was von den meisten Programmen nicht so eng genommen wird).

    Bitte die Datei "GEncLib" aus dem Archiv "GENCLIB.ZIP" nach "USERDATA\R-BASIC\LIBRARY\BIN" extrahieren und die dortige Datei mit selbem Namen überschreiben. Eine vorherige Sicherheitskopie macht natürlich Sinn.

    GENCLIB.ZIP

    Danach sollte der Fehler behoben sein. :S

    Viele Grüße,
    Mario

  • Hallo Mario,
    mit der aktuellen Lib liegt die Dateigröße der erzeugten GIFs jetzt auf ähnlichem Niveau, wie es auch andere Apps erzeugen. :)

    Allerdings tritt bei mir ein Fehler auf, wenn ich ein vorhandenes GIF, das Transparenz enthält, lade, verändere und wieder als GIF speichere:

    Wenn ich die Option "Transparenz per Pal.eintrag Nr. n" nicht auswähle, erhalte ich ein komplett zerschossenes Ergebnis (was vielleicht normal ist?).
    Wenn ich die Option auswähle und Null als Wert stehen lasse, klappt es grundsätzlich, aber Farbe fehlt / ist vertauscht.

    Ob das bei den vorherigen Versionen deiner App auch so war, kann ich jetzt nicht sagen. Aufgefallen war es mir da nicht.

  • Hallo Bernd,

    Was du ansprichst ist ein mir bekanntes Problem, welches ich aber noch nicht 100% analysiert habe.
    Es ist tatsächlich so, dass mit dem Laden eines GIFs neben der Transparenz-Ebene auch "die Farbe darunter" gesetzt werden muss. Dies scheint R-BASIC-intern aber scheinbar schief zu laufen: Entfernt man jetzt die Transparenz (in dem man ohne Transparenz speichert), so kommen in den verbleibenden Bereichen willkührlich bunte Pixel zusammen. Erwarten würde man hier allerdings den vormals als transparent gesetzten Paletteneintrag als Farbe.
    Daraus resultiert, dass die Information, welcher Paletteneintrag der transparente ist, derzeit nach dem Öffnen nicht bekannt ist. Würde obiges Problem gelöst, würde sich unter jedem transparenten Pixel die gewünschte Informationen finden lassen. Damit würde ich dann den Speichern-Dialog automatisch befüllen und man könnte ohne Probleme Änderungen an transparenten GIFs vornehmen.

    Aktuell musst du also sehr diszipliniert sein und immer per 'Speichern unter' unter Angabe des Paletteneintrags einer nicht verwendeten Farbe speichern. Ich nehme hier immer Farbe 255 - auch mit dem Nachteil, dass dann immer eine 256-Farben-Palette in der GIF gespeichert wird, auch wenn man deutlich weniger Farben verwendet.

    Ich schaue mir das Problem aber nochmal etwas genauer an. Eventuell bekommt Rainer dann nochmal Post von mir. :D

    Viele Grüße,
    Mario

  • Hallo Mario. Schön, dass du weiterhin an dem Projekt dran bist.

    Ich habe mal versucht, ein neues Icon zu erstellen und es als GIF mit Transparenz zu speichern. Wie ich da konkret vorgehen muss, ist mir allerdings immer noch nicht wirklich klar. Ich hatte einige Fehlversuche und einige Abstürze...

  • [size=12]Hallo Bernd,[/size]

    [size=12]Abstürze sollte es eigentlich keine mehr geben. Es sei denn der Speicher ist etwas dünn. Falls diese reproduzierbar sind, bitte gern einmal Details zusenden.
    [/size]
    Hier einmal das erstellen eines t[size=12]ransparenten GIF-Icons aus dem Gedächtnis.
    [/size]
    1. Datei[size=12] > Neu
    [/size]
    2. Bildgröße[size=12] wählen und 8 Bit Farbtiefe
    [/size]
    3. Radiergummi-Werkzeug[size=12] auswählen[/size]
    4. Rechter[size=12] Mausklick > Fläche wird transparent
    [/size]
    5. Mittels[size=12] der verfügbaren Zeichenwerkzeuge kreativ sein
    [/size]
    6. Datei > Speichern[size=12] unter
    [/size]
    7. Dateityp[size=12] GIF wählen
    [/size]
    8. Pfad[size=12] wählen und Dateinamen eingeben
    [/size]
    9. Paletteneintrag[size=12] wählen, welcher als transparente Farbe genutzt wird (sollte keine der verwendeten Farben sein)[/size]
    10. Abspeichern

    11. Voilá

    Bei Gelegenheit werde ich aber nochmal ein kleines bebilderten Tutorial dazu machen. Zu einer umfangreichen Hilfe-Datei fehlt mir aktuell die Zeit.

    Mario

  • jetzt müsste ich bloß noch gut Pixeln können

    Brauchst du nicht zwingend. Das Netz bietet so viele passende Ressourcen oder Dinge, die man nur ein klein wenig anpassen muss. ;)

    Nebenbei: Ich musste aktuell nochmal Version 0.9.6 nachschieben, da sich ein ganz böser Fehler beim (Schnell-)speichern eingeschlichen hatte:
    Dabei wurde dann anstatt im Ordner der geöffneten Datei dann im letzten Speichern-Unter-Ordner gespeichert. Und man wundert sich dann, wo die stundenlange Pixelei denn nun hin ist? ?(

    Der Downloadlink auf dem Threadeingangsdingens ist angepasst!

    Mario

  • Hallo Mario,

    bei mir ist es genau anderes herum. Bei der Version von heute Morgen war die aktuell bearbeitet Grafik nach dem Schließen und erneut Öffnen wieder da, bei der aktuellen von eben ist nach jedem Neustart des Programm eine leere 32x32 Grafik da ... (wo sind meine Pixel?)
    Gruß
    Rainer

    P.S. Never fast fix ab bug. It will grow. :S
    Allen eine Guten Rutsch morgen!

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • bei mir ist es genau anderes herum. Bei der Version von heute Morgen war die aktuell bearbeitet Grafik nach dem Schließen und erneut Öffnen wieder da, bei der aktuellen von eben ist nach jedem Neustart des Programm eine leere 32x32 Grafik da ... (wo sind meine Pixel?)

    Hallo Rainer,
    Konnte den Fehler nicht nachstellen. Öffnen - Speichern - Öffnen -Speichern unter - Öffnen ging problemlos. Selbst mit Formatwechsel. Allerdings muss ich mir angewöhnen, meine Ini mit meinen eigenen Ordnerpfaden und Einstellungen nicht mehr mit in den Installer zu packen. Lösch diese am besten einmal (liegt unter privdata/GPixed). Wichtig ist auch Version 0.9.6 - dies ist die aktuellste von gestern 23:54


    Den Bug mit der Warnung zur 16-Farbausgabe bei Quellcodeausgabe habe ich bei mir schon bereinigt. So was blödes.. [size=10] [/size]:S[size=10] [/size]
    Also bitte bis zum nächsten Release einfach erstmal ignorieren. Es gibt keine Beeinträchtigung der Funktion dadurch.

    Mario

  • Hallo. Ich habe mich ein bisschen mit dem tollen Pixel Editor 0.9.6 beschäftigt und will kurz darüber berichten.

    Zuerst habe ich wie empfohlen die INI gelöscht. Nach dem anschließenden Start der App ist sie mit einigen Fehlermeldungen abgestürzt. Danach lief sie zuverlässig. [size=10]Da ich meistens mit GIF-Grafiken arbeite, habe ich zum Testen ein ehemals unter meinem Hostsystem erstelltes Icon in 17x15 Pixel verwendet. Es wurde korrekt eingelesen, Farben und Transparenz stimmten. Dann brauchte ich einige Zeit, um zu verstehen, wie ich weitere Farben einfügen kann, bzw. vorhandene ändern kann. Von meinem anderen PixelEditor bin ich gewohnt, dass ich eine Palette auswählen kann, die mir permanent angezeigt wird und aus der ich dann die Farben per Klick auswählen kann.[/size]

    [size=10]Kann ich eine 256-Farben-Palette auch beim Öffnen von bereits vorhandenen GIF-[/size][size=10]Grafiken aufrufen[/size][size=10]? Bei meinem anderen PixelEditor wähle ich immer die "Sichere Webfarben-Palette" aus. Beim Anlegen einer neuen Grafik wird eine Palette angezeigt, glaube ich.[/size]

    [size=10]Ansonsten ist mir die App einmal beim Speichern des GIF abgestürzt, das konnte ich anschließend aber nicht mehr nachstellen.[/size]

    [size=10]Die erzeugte GIF-Grafik ist ca. 900 Byte groß, das Original-GIF war nur knapp über 100 Byte groß.[/size]

    [size=10]Ich habe ein 1:23 Minuten [/size][size=10]Video aufgenommen, um mal zu zeigen, wie schnell die App unter DOSBox läuft - und wie unbeholfen ich mich durchs Pixeln bewegt habe ;-)[/size]

    https://www.geos-infobase.de/FILM/FLMINDEX.HTM

  • Hallo Bernd,

    Erstmal Danke für den Bericht und das Video. Das hilft mir ungemein weiter die Entwicklung hier voranzutreiben.
    Dir soll aber natürlich auch erstmal geholfen sein:

    Zuerst habe ich wie empfohlen die INI gelöscht. Nach dem anschließenden Start der App ist sie mit einigen Fehlermeldungen abgestürzt. Danach lief sie zuverlässig.


    Ein sehr böser Bug, der mich wirklich sehr geärgert hat. Da hatte ich beim Code-Aufräumen tatsächlich den mehrfach sicher getesteten Code versaubeutelt. Ich muss an meinen Prozessen wohl noch arbeiten.. Der Fehler ist aber bereits behoben und wird mit dem nächsten Release bereinigt sein.

    Dann brauchte ich einige Zeit, um zu verstehen, wie ich weitere Farben einfügen kann, bzw. vorhandene ändern kann.


    Ja, das ist ein neues Feature, dass sich die Palette bearbeiten lässt. Sehe ich das im Video nur falsch oder wird statt dem angeklickten Paletteneintrag ein anderer (viel weiter hinten) geändert?

    Dein GIF-File hat die Besonderheit, dass es nur aus 4 Farben besteht. Beim Öffnen des GIF-File durch die R-Basic-Funktion bekomme ich keine Rückmeldung über die Anzahl der Paletteneinträge, weshalb alle Einträge > 4 <= 255 die Farbe Schwarz erhalten. Eine Funktion, welche die GIF-File ein zweites Mal öffnet um die Anzahl der Palettenfarben zu lesen ist geplant aber noch nicht umgesetzt.

    Kann ich eine 256-Farben-Palette auch beim Öffnen von bereits vorhandenen GIF-Grafiken aufrufen? Bei meinem anderen PixelEditor wähle ich immer die "Sichere Webfarben-Palette" aus. Beim Anlegen einer neuen Grafik wird eine Palette angezeigt, glaube ich.


    Trotz der o.g. Besonderheiten ist es möglich, mit dieser Grafik kreativ tätig zu werden:

    1. Im Menü Extras die Funktion "Quantisieren" anklicken - hiermit wird die Palette auf die tatsächlich verwendeten Farben reduziert. Die vielen zusätzlichen "Schwarz"-einträge ab Eintrag #5 werden entfernt.

    2. Im Menü Extras die Funktion "Palette erweitern" anklicken - hiermit werden leere Paletteneinträge (hier beginnend ab #5) mit der Geos-Standardpalette aufgefüllt. die bereits vorhandenen Farben bleiben erhalten.

    3. Jetzt hast du (bis auf die letzten 4) alle Geos-Farben zur Verfügung und kannst Anpassungen vornehmen.

    Die erzeugte GIF-Grafik ist ca. 900 Byte groß, das Original-GIF war nur knapp über 100 Byte groß.


    Das hat auch mit der Anzahl der gültigen Paletteneinträge zu tun: Je weniger Farben desto kleiner die GIF. Da das Problem mit den vielen zusätzlichen Schwarz-Einträgen besteht, wird deine geänderte GIF mit 256 Paletteneinträgen anstatt mit 4 gespeichert. Die Funktion Quantisieren wirkt hier wieder Wunder. Danach sollte das GIF nach dem Speichern kleiner (etwas gleich groß wie vorher) sein.

    Viele Grüße,

    Mario

  • Zitat von »Mütze«

    Dann brauchte ich einige Zeit, um zu verstehen, wie ich weitere Farben einfügen kann, bzw. vorhandene ändern kann.

    Ja, das ist ein neues Feature, dass sich die Palette bearbeiten lässt. Sehe ich das im Video nur falsch oder wird statt dem angeklickten Paletteneintrag ein anderer (viel weiter hinten) geändert?

    Hmm, meinst du, weil ich 'irgendwo' in das schwarze Feld geklickt habe? War mir nicht klar, dass es eine schwarzgeschaltete Palette ist und es wichtig ist, wo man hin klickt...

    Dein GIF-File hat die Besonderheit, dass es nur aus 4 Farben besteht. Beim Öffnen des GIF-File durch die R-Basic-Funktion bekomme ich keine Rückmeldung über die Anzahl der Paletteneinträge, weshalb alle Einträge > 4 <= 255 die Farbe Schwarz erhalten. Eine Funktion, welche die GIF-File ein zweites Mal öffnet um die Anzahl der Palettenfarben zu lesen ist geplant aber noch nicht umgesetzt.

    1. Im Menü Extras die Funktion "Quantisieren" anklicken - hiermit wird die Palette auf die tatsächlich verwendeten Farben reduziert. Die vielen zusätzlichen "Schwarz"-einträge ab Eintrag #5 werden entfernt.

    2. Im Menü Extras die Funktion "Palette erweitern" anklicken - hiermit werden leere Paletteneinträge (hier beginnend ab #5) mit der Geos-Standardpalette aufgefüllt. die bereits vorhandenen Farben bleiben erhalten.

    3. Jetzt hast du (bis auf die letzten 4) alle Geos-Farben zur Verfügung und kannst Anpassungen vornehmen.

    Zitat von »Mütze«

    Die erzeugte GIF-Grafik ist ca. 900 Byte groß, das Original-GIF war nur knapp über 100 Byte groß.

    Das hat auch mit der Anzahl der gültigen Paletteneinträge zu tun: Je weniger Farben desto kleiner die GIF. Da das Problem mit den vielen zusätzlichen Schwarz-Einträgen besteht, wird deine geänderte GIF mit 256 Paletteneinträgen anstatt mit 4 gespeichert. Die Funktion Quantisieren wirkt hier wieder Wunder. Danach sollte das GIF nach dem Speichern kleiner (etwas gleich groß wie vorher) sein.

    Da hast du doch eigentlich schon alle Voraussetzungen geschaffen, um das beim Speichern einer Grafik zu automatisieren. Als Anwender möchte ich in der Regel ja folgendes (neben einer einfachen Bedienung ;-)): Eine möglichst kleine Dateigröße und ein genaues Abbild meines Bildes. Wenn ich also was mit vier Farben und Transparenz gezeichnet habe, könnte die App genau das als Vorgabe nehmen und ohne Nachfrage das bestmögliche Ergebnis speichern. Als Transparenzfarbe könnte vielleicht weiß oder schwarz (liegen beide in der Palette doppelt vor?) fest verdrahtet sein und dafür in der Palettenansicht ausgespart sein?

  • Hmm, meinst du, weil ich 'irgendwo' in das schwarze Feld geklickt habe? War mir nicht klar, dass es eine schwarzgeschaltete Palette ist und es wichtig ist, wo man hin klickt...

    Nein, es schien nur so als hättest du vor dem ändern des Paletteneintrags bei 0:18 im Video ca. mittig rechts in die Palette geklickt. Nach dem Einstellen der Farbe hat sich aber Farbeintrag #15 (in der Palette erste Zeile, letzter Eintrag) geändert.

    Ich habe aber nicht bedacht, dass du die sekundäre Farbe (Hintergrundfarbe) doppelt geklickt hast. Die steht nämlich zu Beginn standardmäßig auf #15 da dies in der Standardpalette die Farbe Weiß ist. Man sieht bei 0:30 dass sich die Hg.farbe ändert.

    Also alles gut, kein Bug, hat sich aufgeklärt.

    Da hast du doch eigentlich schon alle Voraussetzungen geschaffen, um das beim Speichern einer Grafik zu automatisieren. Als Anwender möchte ich in der Regel ja folgendes (neben einer einfachen Bedienung ;-)): Eine möglichst kleine Dateigröße und ein genaues Abbild meines Bildes. Wenn ich also was mit vier Farben und Transparenz gezeichnet habe, könnte die App genau das als Vorgabe nehmen und ohne Nachfrage das bestmögliche Ergebnis speichern. Als Transparenzfarbe könnte vielleicht weiß oder schwarz (liegen beide in der Palette doppelt vor?) fest verdrahtet sein und dafür in der Palettenansicht ausgespart sein?

    Leider gibt es da viele unterschiedliche Ansprüche. Wenn du als Beispiel an einer GIF-Datei arbeitest und morgen gern mit allen Farben weiterzeichnen möchtest dann macht es Sinn die komplette Palette in der Datei zu belassen. Es handelt sich immerhin nur um Daten <1KB . Außerdem sollte die Datei logisch und wie sie ist dargestellt werden, auch wenn das manchmal nicht ganz benutzerfreundlich ist.
    Was man überlegen könnte, wäre das quantisieren als Checkbox in den Speichern-Dialog mit einzubeziehen a la "optimiert speichern".
    Mit dem TransparentColorIndex - so heißt der Paletteneintrag, welcher Transparent dargestellt wird ist es auch so eine Sache - hier kann man nicht einfach hergehen und sagen der ist immer Schwarz, Weiß oder immer #0, denn dieser sollte auf einer Farbe liegen, welche im Bild ungenutzt ist. Deshalb liegt dieser standardmäßig auf Farbe #255 - Was passiert aber jetzt mit deiner quantisierten 4-Farb-GIF? Hier müsste nun beim Speichern eine 5. Farbe hinzukommen. Da GIF aber nicht stufenlos Palettengrößen händelt, sind es jetzt insgesamt 8 Farben die gespeichert werden müssten. Alles nicht so trivial..
    Ich schau aber mal, ob mir hier noch etwas schlaues zu einfällt. Gerade die Idee die Transparente Farbe in der Palette auszusparen wäre zu überlegen.

    Mario

  • Hallo Bario. Von den technischen Hintergründen und wie schwer die angesprochenen Sachen umzusetzen wären, habe ich natürlich keine Ahnung. Ich habe schlicht den Speichervorgang deiner App mit dem der Apps meines Hostsystems verglichen und da kann ich beim GIF-Export bestenfalls zwischen GIF87a oder GIF89a wählen - was aber auch daran liegen kann, dass ich gerne mit kleinen Tools arbeite, die nur [size=10]in etwa [/size]das bieten, was ich auch verwende. Und ich bin einer dieser faulen Nutzer, die sich ungern in den Tiefen der Menüs verirren. :D

  • Pünktlich zur Veranstaltung habe ich die Version 1.0 nun fertiggestellt. Zuletzt ging es vorallem darum Stabilität reinzubekommen. Ich musste viele Probleme irgendwie umschiffen und trotz vieler Tests auf unterschiedlichen Systemen gibt es nach wie vor große Unsicherheiten, ob sich nicht doch noch der ein oder andere schwerwiegende Bug eingeschlichen hat. Deshalb freue ich mich über Feedback, ob GPixEd 1.0 auf euren Systemen fehlerfrei und halbwegs performant läuft: Klicken und ziehen mit dem Stiftwerkzeug sollte z.B. sofort Pixel einfärben und nicht erst nach einer Kunstpause.

    Download und Releasenotes siehe ganz oben!

    Mario

  • Ich finde das so geil, dass das Teil mittlerweile so eine richtig standardmäßige Oberfläche hat, mit Tool-Palette und allem. Werde es auf dem Treffen mal ausprobieren!

    Dann fehlt mir bloß noch eine Ebenenverwaltung und das Verflüssigen-Tool und schon bin ich glücklich ;) :thumbup:

  • Bitte um Hilfe!

    Wie markiere ich eine transparente Farbe in einem PCX, was dann das PCX Tool auch als transparent akzeptiert?

    Hallo Johannes,

    Wenn du das TokenPCX-Tool installiert hast, befindet sich unter DOCUMENTS eine Anleitung "TOKENPCX.TXT". Dort beantwortet folgender Absatz deine Frage:

    Code
    Das PCX-Format, dass von diesem Programm benörtigt wird, ist:
     - 8 Bit per Pixel, mit Palette (jede Palette wird akzeptiert)
     - PalettenIndex 1 wird als MASKE interpretiert.
     - Die Datei muss zwei Icons enthalten, eins 48x30, das andere 15x15 Pixel
     - Die Datei muss mindestens 65x31 Pixel groß sein, weil
     - Das 48x30 Icon muss bei (1,1) beginnen
     - Das 15x15 Iocn muss bei (50,1) beginnen
     Wobei die linke obere Ecke die Koordinaten (0,0) hat

    Palettenindex 1 ( = 2. Farbe) wird also zur transparenten Farbe. Mit der müsstest du deinen Hintergrund zeichnen. Ich habe dies insofern bei GPixEd bereits berücksichtigt, dass bei Vorlage "TokenPCXTool" die Standardpalette bei Index 1 statt dem gewohnten Dunkelblau ein Weiß gesetzt hat. Dies macht es für's pixeln dann etwas einfacher. Wenn du möchtest, kannst du dieses Weiß aber auch in die Farbe deiner Wahl abändern.

    Deine Frage ist aber dennoch wertvoll. Solche Punkte sollte ich eigentlich in der Hilfe dokumentiert haben.. :cursing: Kommt dann mit der nächsten Version, versprochen! :D

    Mario