NickyHendriks Geplaatst: 30 september 2009 Rapport Geplaatst: 30 september 2009 (bewerkt) Hallo, Ik heb zeg maar een klein scriptje, soortvan, en die werkt dat ik meerdere plaatjes maak, en die met en scriptje laat wisselen, en dan via htaccess wilde ik die naar PNG converteren. Maar nu word de afbeelding niet weergegeven in IPB, SMF etc. dus hoe kan ik het zo maken dat het wel word weergegeven? Dit is de code: <?php $images = array('banner/1.png', 'banner/2.png'); $alt = array('BeaT DowN - 24/7', 'BeaT DowN - The best place to be!'); $loop = rand(0,sizeof($images) - 1); ?> <html><img src="<?php echo $images[$loop]; ?>" alt="" /></html> Bewerkt: 30 september 2009 door Zamg0d1 Reageren
PatrickW Geplaatst: 30 september 2009 Rapport Geplaatst: 30 september 2009 Als je het via htaccess als png wilt kunnen tonen, moet je er wel voor zorgen dat de output die je genereerd ook echt een PNG plaatje is. Op dit moment genereert jouw script HTML code. Voorbeeld van genereren van een png plaatje vanuit php: <?php $pict = imagecreatefrompng("input.png"); header("Content-type: image/png"); ImagePNG($pict); ImageDestroy($pict); ?> De eerste laad een png plaatje in vanaf disk, en slaat die op als een "image" in variable $pict. De tweede regel genereerd de HTTP headers, die aangeven dat het om een png plaatje gaat. De derde regel stuurt de inhoud van $pict als PNG naar de output. En de laatste regel verwijderd de variabele $pict weer. Ik denk dat je op basis hiervan er wel uit zou moeten komen. Succes Reageren
NickyHendriks Geplaatst: 30 september 2009 Auteur Rapport Geplaatst: 30 september 2009 (bewerkt) Maar, moet ik dus als input doen http://bd.gaming-freak.nl/banner.png ? Als ik dat doe krijg ik errors.. En als ik een PNG als input moet invoeren, hoe doe ik dat dan? Ik heb nog geen PNG toch? Dus hoe doe ik dat dan? Warning: imagecreatefrompng() [function.imagecreatefrompng]: 'http://bd.gaming-freak.nl/banner.png' is not a valid PNG file in /usr/home/deb15335/domains/gaming-freak.nl/public_html/bd/banner.php on line 8 Warning: Cannot modify header information - headers already sent by (output started at /usr/home/deb15335/domains/gaming-freak.nl/public_html/bd/banner.php:8) in /usr/home/deb15335/domains/gaming-freak.nl/public_html/bd/banner.php on line 9 Warning: imagepng(): supplied argument is not a valid Image resource in /usr/home/deb15335/domains/gaming-freak.nl/public_html/bd/banner.php on line 10 Warning: imagedestroy(): supplied argument is not a valid Image resource in /usr/home/deb15335/domains/gaming-freak.nl/public_html/bd/banner.php on line 11 Bewerkt: 30 september 2009 door Zamg0d1 Reageren
PatrickW Geplaatst: 30 september 2009 Rapport Geplaatst: 30 september 2009 Met "imagecreatefrompng()", kun je alleen plaatjes inladen vanaf de schijf van je server. Je kunt dus geen URL gebruiken om een plaatje van internet te laden. In mijn voorbeeld, moet je dus een "input.png" plaatje hebben staan in dezelfde folder als waarin de php file staat. Reageren
NickyHendriks Geplaatst: 1 oktober 2009 Auteur Rapport Geplaatst: 1 oktober 2009 (bewerkt) Met "imagecreatefrompng()", kun je alleen plaatjes inladen vanaf de schijf van je server. Je kunt dus geen URL gebruiken om een plaatje van internet te laden.In mijn voorbeeld, moet je dus een "input.png" plaatje hebben staan in dezelfde folder als waarin de php file staat. Mag dit ook gewoon een lege afbeelding zijn?EDIT: Dit script geeft nu een error.... <?php $images = array('banner/1.png', 'banner/2.png'); $alt = array('BeaT DowN - 24/7', 'BeaT DowN - The best place to be!', 'BeaT DowN - Kom naar 24/7!'); $loop = rand(0,sizeof($images) - 1); ?> <?php $pict = imagecreatefrompng("input.png"); header("Content-type: image/png"); ImagePNG($pict); ImageDestroy($pict); ?> <html><img src="<?php echo $images[$loop]; ?>" alt="" /></html> Alles is goed, maar ik krijg een error... Warning: Cannot modify header information - headers already sent by (output started at /usr/home/deb15335/domains/gaming-freak.nl/public_html/bd/banner.php: in /usr/home/deb15335/domains/gaming-freak.nl/public_html/bd/banner.php on line 10 - Dit is de header die ik in de code van jou eb staan. Zelf snap ik er even niks meer van Bewerkt: 1 oktober 2009 door Zamg0d1 Reageren
marcootje Geplaatst: 1 oktober 2009 Rapport Geplaatst: 1 oktober 2009 Die error betekent dat je al output hebt weggeschreven voordat je header() aanroept. Dit zijn waarschijnlijk die 2 newlines boven <?php, die moeten weg: <?php $images = array('banner/1.png', 'banner/2.png'); $alt = array('BeaT DowN - 24/7', 'BeaT DowN - The best place to be!', 'BeaT DowN - Kom naar 24/7!'); $loop = rand(0,sizeof($images) - 1); //$pict = imagecreatefrompng("input.png"); $pict = imagecreatefrompng($images[$loop]); header("Content-type: image/png"); ImagePNG($pict); ImageDestroy($pict); ?> ik heb ook even de $pict nu ingesteld zoals die hoort uitgaande van het script daarboven ook heb ik de html weggehaald... in een png-plaatje hoort geen html he Reageren
NickyHendriks Geplaatst: 1 oktober 2009 Auteur Rapport Geplaatst: 1 oktober 2009 Yay Het werkt! Bedankt Marco! Reageren
Recommended Posts
Een reactie plaatsen
Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.