pngcrush Problemstellung

  • Moin,

    ich habe auf meinem Raspberry Pi mit Debian eine .sh Datei laufen.

    Bash
    #!/bin/sh
    
    
    cd "$( dirname  "$0")"
    
    
    python2.7 weather-script.py
    rsvg-convert --background-color=white -o weather-script-output.png weather-script-output.svg
    pngcrush  -c 0 -ow weather-script-output.png
    cp -f weather-script-output.png /var/www/kindle/server/weather-script-output.png

    Der Code stammt aus einem Projekt von Matthew Petroff

    Das Script scheint bei mir auch zu laufen, allerdings funktioniert pngcrush nicht richtig.

    Hat jemand eine Idee? Ich habe bereits auf alle Dateien chmod 777 angewendet. Die .sh wird via cronjob minütlich ausgeführt.


    Besten Dank und Grüße

    Hellmann

    • Offizieller Beitrag

    Du hast ja alles super beschreiben, bis auf das eigentliche Problem....

    Zitat

    funktioniert nicht richtig

    ist nun wirklich keine Fehlerbeschreibung.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Einmal editiert, zuletzt von dbv (23. April 2014 um 12:42)

  • Ja da hast du recht, sorry!

    pngcrush soll durch

    Code
    -c 0

    das .png file von RGB auf grayscale ändern. Dies scheint aber nicht zu funktionieren.

    Hoffe damit kann man schon mehr anfangen!?

  • Ich habe mir mal gerade pngcrush installiert, von diesem Tool aber bis eben noch nie gehört.

    Bist Du denn sicher, dass Du es richtig aufrufst?
    Laut Usage Synopsis des Help Screen erwartet es sowohl eine Ein- als auch ein Ausgabedatei.
    In Deinem Aufruf gibts Du aber nur die gewünschte Ausgabedatei über die Overwrite Option mit.
    Bei Dir erfolgt der Aufruf auch nicht in einer Pipe, wo ggf. der Input von stdin gelesen wird.
    Der Aufruf mit nur einem oder beliebig vielen Input Files ist laut Usage Syntax nur mit den Optionen "-e", "-d" oder "-n" zulässig.

    Code
    $ pngcrush -h 2>&1|grep -A4 usage:
    usage: pngcrush [options] infile.png outfile.png
           pngcrush -e ext [other options] file.png ...
           pngcrush -d dir/ [other options] file.png ...
           pngcrush -n -v file.png ...

    Einmal editiert, zuletzt von Life_of_Pi (23. April 2014 um 13:43)

  • Moin,

    habs gerade geschafft selber zu lösen:) pngcrush konnte mit "-ow" nichts anfangen warum auch immer!

    Bash
    #!/bin/sh
    
    
    cd "$( dirname  "$0")"
    
    
    python2.7 weather-script.py
    convert weather-script-output.svg weather-script-output-new.png
    pngcrush -c 0 weather-script-output-new.png weather-script-output.png
    cp -f weather-script-output.png /var/www/kindle/server/weather-script-output.png


    So funktioniert es nun! Danke an euch! Voralem an "das ist nun wirklich keine Fehlerbeschreibung" habe mich deshalb noch mal ausführlicher damit auseinander gesetzt ;)

  • Schön, dass es in der Aufrufsyntax mit Input und Output File jetzt bei Dir funktioniert.
    Dann könntest Du Dir eigentlich das anschliessende cp in der letzten Zeile Deines Skripts sparen,
    wenn Du dem Output File lediglich den vollständigen Pfad zum contents subdir Deines Webservers voranstellst
    (also einfach das zweite Argument des cp dem pgcrush als zweites mitgibst)

    Aber ich muss mich korrigieren.
    Zumindest in der Version, die ich von pgncrush gerade installiert habe, funktioniert die overwrite Option "-ow"
    und auch mit der ursprünglichen Syntax Deines Skripts.

    Ich habe das mal eben an dem PNG der Himbeere des RPi Logos ausprobiert und aus dem colour ein greyscale image mittels pngcrush gemacht.
    Funktioniert bei mir einwandfrei.
    Allerdings müsste man wohl noch die Konvertierung etwas optimieren, indem man ein paar weitere Optionen ausprobiert,
    denn das graue Image der Himbeere ist nicht wirklich schön geworden und weist einige Artefakte auf,
    wenn ich mir das mittels ImageMagicks display mal angucke.



    Ich habe bereits auf alle Dateien chmod 777 angewendet.

    Ich würde das wieder rückgängig machen.
    So weitgehende Zugriffsrechte Dateien oder Verzeichnissen zu vergeben, ist das Schlechteste, was man tun kann,
    zumal auf einem Webserver.
    Und wenn schon 0777, dann bitte wenigstens immer das Sticky Bit setzen, also chmod 1777 ...

    Einmal editiert, zuletzt von Life_of_Pi (23. April 2014 um 14:20)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!