Seite 1 von 1

[gelöst]Ein PNG Bild auch als JPG bzw. GIF erreichbar machen

Verfasst: 04.06.2007 20:01
von Kellergeist2
Hallo zusammen!

Ich würde gerne - ähnlich wie bei dem interaktiven Signatur-Banner - ein vorhandenes Bild (welches im PNG-Format vorliegt) auch als GIF sowie JPG erreichbar machen.
Dabei möchte ich nicht das Bild in den anderen Formaten vorhalten, sondern die Existenz des GIF / JPG nur vorgaukeln.

Ich bräuchte nun ein kleines PHP-Script, welches das PNG-Bild an den Browser sendet.

Nehmen wir mal folgenden Fall an:
Mein Bild liegt im phpBB-Verzeichnis /images/MeinBild.png
Nun möchte ich, dass man auch /images/MeinBild.gif angeben kann und trotzdem das PNG angezeigt bekommt.
Das Gleiche soll dann auch für /images/MeinBild.jpg gelten.

Bei dem Signatur-Banner wird das über eine index.php im Verzeichnis /sig.gif/ gelöst.

Wie muss nun meine /images/MeinBild.gif/index.php aussehen, damit ich das Gleiche erziehle?

Zur Info: Es soll einfach nur das Original PNG-Bild durchgeschleust werden. Eine Bearbeitung durch das Script (wie beim Sig-Banner) ist nicht gewünscht.
Ein Caching ist daher auch nicht nötig, da das Original-Bild ja auch immer vorhanden ist.

Ich schätze, dass dies ein Klacks für jemanden ist, der sich mit PHP auskennt, leider habe ich davon absolut keine Ahnung.

Ich danke euch jetzt schon vielmals für eure Vorschläge!

[Edit]
Sorry, ich habe gerade bemerkt, dass ich im falschen Forum gepostet habe. Bitte in phpBB 2.0: Administration und Benutzung verschieben.
Sollte die Lösung für ein phpBB3 anders aussehen, so wäre ich für den entsprechenden PHP-Code sehr dankbar, da ich plane, kurz nach dem Release umzustellen und dann das Script sicher erst recht gut gebrauchen kann.

Verfasst: 05.06.2007 20:03
von Kellergeist2
*bump*

Verfasst: 05.06.2007 21:58
von larsneo
probier' doch einfach einmal folgende .htaccess (modrewrite mal vorausgesetzt)

Code: Alles auswählen

RewriteEngine on
RewriteRule ^(.*).(gif|jpg)$ $1.png

Verfasst: 05.06.2007 22:07
von Kellergeist2
larsneo hat geschrieben:probier' doch einfach einmal folgende .htaccess (modrewrite mal vorausgesetzt)

Code: Alles auswählen

RewriteEngine on
RewriteRule ^(.*).(gif|jpg)$ $1.png
Danke für diesen Tipp, ModRewrite ist vorhanden und wird auch schon (für andere Dinge) verwendet.
Ich kenne mich zwar nicht mit den RewriteRules aus, aber ich kann mir vorstellen, dass diese Regel sämtliche GIF- und JPG-Grafiken auf ein PNG zeigen lässt.

Ich möchte nur zwei Dateien durchschleusen, z. B.:
/images/button88x31.png
/images/banner468x60.png

Daher dachte ich an eine ähnliche Technik wie beim Signatur-Statistik-Banner, wo eine "leere" Hintergrundgrafik geladen wird.
Wenn diese PHP-Datei als index.php im Verzeichnis /images/Sig.gif/ abgelegt wird, dann ruft man zwar die "Grafik" Sig.gif ab, bekommt aber eine PNG-Grafik zurückgeliefert.
Genau dies würde doch exakt das machen, was ich mir so vorstelle, leider weiß ich nicht, wie die PHP-Datei aussehen muss, damit es funktioniert.

Verfasst: 06.06.2007 22:25
von Kellergeist2
*bump*
Hat niemand eine Idee, wie diese (wahrscheinlich sehr einfach gestrickte) PHP-Datei aussehen muss?

Ich wäre euch wirklich seeeeehr dankbar!

Verfasst: 06.06.2007 22:38
von tas2580
Versuch mal

Code: Alles auswählen

<?php
$image = "banner.png";
$im = imagecreatefrompng($image);
header("Content-Type: image/png");
header("Expires: Mon, 26 Jul 1997 01:00:00 GMT");
header("Last-Modified: Mon, 26 Jul 1997 01:00:00 GMT");
Imagepng($im);
ImageDestroy ($im);
?>
Du kannst bei mod_rewrite aber auch Dateinamen angeben so wird nur ein Bild umgeschrieben und nicht alle.

Verfasst: 06.06.2007 23:34
von Kellergeist2
Danke Tobi, das hat mir sehr geholfen!
Ich versuche möglichst ohne ModRewrite auszukommen, da ich auf meinem anderen Webspace kein ModRewrite habe.