Ankündigung

Einklappen
Keine Ankündigung bisher.

Animierte grafik mit imagecreatefromgif

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Animierte grafik mit imagecreatefromgif

    Hallo Forum,

    habe hier ein kleines Problem und zwar nutz ich hier Aardvarktoplist und möchte gerne den Statistikbanner von dort verwenden, der originale ist extrem unschön und statisch...

    Nun habe ich mir das soweit schon angepasst und eine passende animierte .gif Grafik erstellt wodurch ich den Button mit nem kleinen Trick extrem verschönern konnte...

    Leider haperts gerade aber am php Code weil die Grafik nach dem php Code ausgegeben wird nicht mehr animiert ist =(

    Im Grunde soll er mir blos die 2 Ausgaben auf die animierte .gif legen nicht gleich die ganze Datei schrotten bzw. nur den ersten Fram anzeigen.

    PHP-Code:
    <?php
    if (!defined('ATSPHP')) {
      die(
    "This file cannot be accessed directly.");
    }

    $TMPL $DB->fetch("SELECT *
                       FROM 
    {$CONF['sql_prefix']}_sites sites, {$CONF['sql_prefix']}_stats stats
                       WHERE sites.username = stats.username AND sites.username = '
    {$username}'"__FILE____LINE__);
    if (
    $rank) {
      
    $TMPL['rank'] = $rank;
    }
    else {
      
    $TMPL['rank'] = $TMPL['old_rank'];
    }

    $TMPL['average_rating'] = $TMPL['num_ratings'] > round($TMPL['total_rating'] / $TMPL['num_ratings'], 0) : 0;

    $ranking_periods = array('daily''weekly''monthly');
    $ranking_methods = array('unq_pv''tot_pv''unq_in''tot_in''unq_out''tot_out');
    foreach (
    $ranking_periods as $ranking_period) {
      foreach (
    $ranking_methods as $ranking_method) {
        
    $TMPL["{$ranking_method}_avg_{$ranking_period}"] = 0;
        for (
    $i 0$i 10$i++) {
          
    $TMPL["{$ranking_method}_avg_{$ranking_period}"] = $TMPL["{$ranking_method}_avg_{$ranking_period}"] + $TMPL["{$ranking_method}_{$i}_{$ranking_period}"];
        }
        
    $TMPL["{$ranking_method}_avg_{$ranking_period}"] = $TMPL["{$ranking_method}_avg_{$ranking_period}"] / 10;
      }
    }

    $TMPL['average_rating'] = $TMPL['num_ratings'] > round($TMPL['total_rating'] / $TMPL['num_ratings'], 0) : 0;

    $img imagecreatefromgif("{$CONF['path']}/images/ranking.gif");
    $color1 imagecolorallocate($img2063636);
    header ("Content-type: image/gif");
    imagestring($img32015$TMPL['unq_pv_0_daily'], $color1);
    imagestring($img560 - ((strlen($TMPL['rank']) - 1) * 4), 15$TMPL['rank'], $color1);
    imagepng($img);
    ?>

    Ich hoffe jemand ist so nett und hilft mir etwas weiter, denn ich bin da leider sehr sehr unerfahren

    MFG: Paykoman


  • #2
    Vorweg: Ich kenn mich mit animierten GIF in PHP nicht so wirklich aus.
    Aber:
    1. "php animated gif" gibt rd. 11,6 Mio. Treffer bei Google und davon sahen einige recht vielversprechend aus
    2. imagepng dürfte Probleme damit haben, animierte GIF auszugeben.
    Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
    Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

    Kommentar


    • #3
      jo super informativ, das es nicht mit png geht ist mir auch klar

      Und natürlich aheb ich schon danach gegoogeld aber wie gesagt bin kein richtiger php-ler von daher wars etwas kompliziert..

      Hatte gehofft das hier evtl. jemand paar Stichpunkte nennen kann worauf ich achten muss welche Bereiche hier das PNG deffeniert wird da ich ja schon auf gif geändert habe aber bei eigenschaften immer noch image/PNG steht. usw.

      MFG: Pay

      Kommentar


      • #4
        Zitat von Paykoman Beitrag anzeigen
        ...

        Nun habe ich mir das soweit schon angepasst und eine passende animierte .gif Grafik erstellt wodurch ich den Button mit nem kleinen Trick extrem verschönern konnte...
        Böse ausgedrückt: Du hast fremden Quellcode modifiziert, ohne wirklich zu verstehen, was da abläuft?

        Leider haperts gerade aber am php Code weil die Grafik nach dem php Code ausgegeben wird nicht mehr animiert ist =(
        Kein Wunder:
        1.) PHPs Image-Funktionen können keine Anim-GIFs lesen. Gut, einlesen schon, aber die Animation geht dabei verloren, nur das erste Frame wird erkannt.

        2.) Wenn du (wie dein Vorposter schon angemerkt hat) die Grafik mit imagePNG() ausgibst, kommt kein GIF heraus, weder animiert noch statisch. Da kannst du den Browser dreimal mit
        Code:
        header ("Content-type: image/gif");
        anlügen. Es bleibt ein PNG.

        ...
        Ich hoffe jemand ist so nett und hilft mir etwas weiter, denn ich bin da leider sehr sehr unerfahren
        Ja, was soll man da machen. Ich könnte dir die AnimGIF-Libraries auf phpclasses.org empfehlen, hege aber leise Zweifel, dass du da durchsteigen wirst.

        Guckst du:

        zerlegt AnimGIF in Einzelbilder

        erzeugt AnimGIF aus Einzelbildern
        Wenn man die Wurst schräg anschneidet hält sie länger, weil die Scheiben größer sind.

        Kommentar


        • #5
          ImageMagick kann animated GIFs aus Einzelbildern erzeugen...
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar

          Lädt...
          X