Generiertes Bild - trotzdem .png-Endung?

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

  • Generiertes Bild - trotzdem .png-Endung?

    Ich versuche gerade, einen Userbar-Randomizer für eine Signatur zu schreiben.

    Ich wollte das so machen wie bei http://www.sloganizer.net/en/imagegenerator.php . Auf dieser Seite wird scheinbar ein .png-Bild mit PHP erstellt.

    Ich bin schon so weit, dass ein Bild zufällig aus einem Ordner gewählt wird und anschließen dargestellt wird (test.html - click; das Bild selbst wird hier generiert)

    Wenn ich aber versuche, das Zufallsbild mit [img] einzubinden, tut er das nicht, sondern schreibt nur die URL hin.

    Wie kann ich es schaffen, dass das Zufallsbild eine png, gif oder jpg Endung hat?
    [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

  • #2
    Solange das nicht gesperrt ist, klappt es über eine .hatccess mit mod_rewrite oder ForceType.
    hopka.net!

    Kommentar


    • #3
      Example 5.; Force All Files in a Directory to a Specific Mime-Type.
      .htaccess contains:

      ForceType image/jpg

      The causes ALL files in the directory to be treated as JPEG files. No matter their extension.
      Note, can NOT be use in a <Files> </Files> tag!

      Das heißt, ich brauch nur eine .htaccess in den Ordner schmeißen, wo die php Datei ist? Und welchen Namen würde dann das automatisch generierte Bild in der index.php bekommen (index.php generiert das bild)? index.png?
      Zuletzt geändert von tomstig; 09.03.2006, 18:53.
      [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

      Kommentar


      • #4
        hab grad herumprobiert:

        .htaccess
        PHP-Code:
        ForceType image/png 
        index.php
        PHP-Code:
        <?php    
        // dir with you userbars
        $dir 'images';    

        // DONT CHANGE ANYTHING AFTER HERE

        // Can the dir be opened?
        if ($handle opendir($dir))
        {        
            
        $files = array();
            
        // Loop that gets all files and writes them into an array
            
        while(false !== ($file readdir($handle)))
            {        
                if( 
        $file != "." && $file != "..")    
                {                            
                        
        $files['name'][] = $file;
                        
                        
        $info getimagesize($dir.'/'.$file);                
                        
        $files['type'][] = str_replace('image/'''$info['mime']);
                                            
                    }
            }
            
            
        // Get a random number...
            
        $rand rand(0, (count($files['name'])-1));
            
            
        $pic $dir '/' $files['name'][$rand];
            
        // Output image
            
        switch($files['type'][$rand])
            {
                case 
        'jpeg':
                    
        $pic imagecreatefromjpeg($pic);
                    break;            
                case 
        'png':
                    
        $pic imagecreatefrompng($pic);
                   break;
               case 
        'gif':
                   
        $pic imagecreatefromgif($pic);
                   break;
          }
           
            
        header("Content-type: image/png");
          
        imagepng($pic);
            
        #echo '<img src="' . $dir . '/' . $files[$rand] . '" alt="" />';
            #echo $dir . '/' . $files[$rand];
            
            
        }
        ?>
        Hab auch eine Datei namens "userbar" (ohne Endung) abgelegt. Egal ob ich jetzt "userbar.png" oder "index.png" eingebe, ich bekomm immer einen 500 Fehler...

        wäre es so gegangen? liegt der fehler am server oder an mir?
        [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

        Kommentar


        • #5
          da steht doch, dass die dateien so behandelt wären, als ob sie pngs wären. nicht, dass sie eine PNG-Endung haben. Du musst es also genau anders herum machen.

          Da du aber nur eine Datei behandeln willst, würd ichs ja schnell mit mod_rewrite machen,

          Kommentar


          • #6
            Einfach nur ForceType reinschreiben reicht nicht. Ich weiß es nicht mehr genau, aber es geht ungefähr so:
            Code:
            <FilesMatch "index\.png">
                ForceType application/x-httpd-php
            </FilesMatch>
            hopka.net!

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              da steht doch, dass die dateien so behandelt wären, als ob sie pngs wären. nicht, dass sie eine PNG-Endung haben. Du musst es also genau anders herum machen.

              Da du aber nur eine Datei behandeln willst, würd ichs ja schnell mit mod_rewrite machen,
              Hoho, weil mod_rewrite so einfach zu verstehen ist
              (keine Angst, ich knie mich eh grad rein, aber ich kann für nichts garantieren )
              [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

              Kommentar


              • #8
                Ich versuche das gerade offline zu testen. Habe die httpd.conf schon eingestellt (das Kommentarzeichen vor dem mod_rewrite-loadmodule weggelöscht) und apache restarted.

                aber mit
                Code:
                RewriteEngine on 
                RewriteRule ^test.jpg$ index.php
                gehts trotzdem nicht :/
                [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

                Kommentar

                Lädt...
                X