Ergebnis 1 bis 8 von 8

Thema: Banner Wächsel ind Sig

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    So wie's aussieht, ist das kein PHP-Skript, sondern ein PNG. Wie man solche PNGs, die bei jedem Aufruf was anderes anzeigen, erstellt, weiß ich nicht. Aber ein Prototypen eines PHP-Skripts kann ich hier mal schnell zusammenschustern:
    PHP-Code:
    <?php
    header
    ('Content-Type: image/png');
    $bilder = array('bild1.png''bild2.png''drittes.png');
    srand((double)microtime()*1000000);
    $bildnr rand(0count($bilder) - 1);
    echo 
    file_get_contents($bilder[$bildnr]);
    ?>
    Die einzige Vorraussetzung für dieses Skript sollte sein, dass nur PNGs verwendet werden (was theoretisch auch durch entfernen des Content-Headers aufgehoben werden könnte, da fast alle gängigen Browser bei einem IMG-Element automatisch von einem Bild ausgehen und sich den richtigen Mime-Type suchen). Die zu wechselnden Bilder werden im Array $bilder gespeichert, per Zufall durch rand() ausgewählt und deren Inhalt, der durch file_get_contents() ermittelt wird, ausgegeben.
    Trotz der mir zumindest hier richtig erscheinenden Erklärung kann das Skript natürlich auch nix anderes als Fehlermeldungen produzieren

    Geändert von dead_orc (29.05.2005 um 09:27 Uhr)

  2. #2
    Zitat Zitat von dead_orc
    So wie's aussieht, ist das kein PHP-Skript, sondern ein PNG. Wie man solche PNGs, die bei jedem Aufruf was anderes anzeigen, erstellt, weiß ich nicht.
    Kann man nicht. Wahrscheinlich hat NPC einfach einen Ordner namens "dateiname.png" erstellt und da die index.php reingetan, die das Bild zurückgibt. Das ist ein recht bekannter Trick, um dynamiche Bilder in Foren zu verwenden, die nur bestimmte Dateiendungen in der Sig/dem Ava erlauben.


    Es ist übrigens problemlos möglich, verschiedene Quellformate zu verwenden, aber etwas aufwendig. Man muß das Quellbild erst auslesen und dann als neues Bild ausgeben.

    Man kann beliebige Bilder laden, indem man folgende Funktion verwendet:
    PHP-Code:
    function LoadImage($image)
    {
     
    $type exif_imagetype ($image); // Liest die ersten Bytes der Datei und bestimmt so den Dateityp
     
    switch ($type)
     {
      case 
    "3":
       
    $return imagecreatefrompng ($image);
       break;
      case 
    "2":
       
    $return imagecreatefromjpeg ($image);
       break;
      case 
    "1":
       
    $return imagecreatefromgif ($image);
       break;
      default:
      
    $return imagecreate(1,1); // Das Bild hat ein nicht unterstütztes Format
       
    break;
     }

     return 
    $return;

    Das gesamte Skript könnte dann so aussehen:
    PHP-Code:
    <?
    header("Content-Type: image/png");

    $bilder = array('bild1.png', 'bild2.jpg', 'drittes.gif');
    // Der Aufruf von srand() ist nur bei PHP < 4.2.0 nötig
    $bildnr = rand(0, count($bilder) - 1);
    $im = LoadImage($bilder[$bildnr]);
    ImagePNG($im);

    function LoadImage($image)
    {
     $type = exif_imagetype ($image);
     switch ($type)
     {
      case "3":
       $return = imagecreatefrompng ($image);
       break;
      case "2":
       $return = imagecreatefromjpeg ($image);
       break;
      case "1":
       $return = imagecreatefromgif ($image);
       break;
      default:
      $return = imagecreate(1,1);
       break;
     }

     return $return;
    }
    ?>
    Oder, kürzer:
    PHP-Code:
    <?
    header("Content-Type: image/png");

    $bilder = array('bild1.png', 'bild2.jpg', 'drittes.gif');
    ImagePNG(LoadImage($bilder[rand(0, count($bilder) - 1)]));

    function LoadImage($image)
    {
     $type = exif_imagetype ($image);
     switch ($type)
     {
      case "3":
       $return = imagecreatefrompng ($image);
       break;
      case "2":
       $return = imagecreatefromjpeg ($image);
       break;
      case "1":
       $return = imagecreatefromgif ($image);
       break;
      default:
      $return = imagecreate(1,1);
       break;
     }

     return $return;
    }
    ?>

    Geändert von Jesus_666 (29.05.2005 um 13:57 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •