Avatar billede playr Nybegynder
19. juli 2007 - 12:40 Der er 4 kommentarer og
1 løsning

Uploader kun JPG - Vil også JPEG og GIF?

Hej Allesammen.

Jeg har et script jeg har fundet på:
http://www.phpscriptexpert.com/script.php?pn=Image%20Resize%20and%20Watermark&pid=198

Hvor den sætter vandmærke på og resizer billedet uden at lave thumbnails.

Når jeg uploader .jpg så virker det fint, men...
Hvis jeg uploader .jpeg så kan den ikke vise billeder, og med .gif bliver billedet bare helt sort?

Scriptet kan ses på det side jeg linkede til, ellers kommer det her:


-------------------- Script start --------------------

<?
/*
http://www.phpscriptexpert.com/script.php?pn=Image%20Resize%20and%20Watermark&pid=198
*/

if($_GET['image']){
    $image = $_GET['image'];

    if($_GET['type']=="jpg"){
        header("Content-type: image/jpeg");
    }elseif($_GET['type']=="gif"){
        header("Content-type: image/gif");
    }elseif($_GET['type']=="png"){
        header("Content-type: image/png");
    }else{
        if(substr($image, -3)=="jpg" || substr($image, -3)=="JPG"){header("Content-type: image/jpeg");}
        elseif(substr($image, -3)=="gif" || substr($image, -3)=="GIF"){header("Content-type: image/gif");}
        elseif(substr($image, -3)=="png" || substr($image, -3)=="PNG"){header("Content-type: image/png");}
    }
   
    if(substr($image, -3)=="jpg" || substr($image, -3)=="JPG"){$im = imagecreatefromjpeg($image);}
    elseif(substr($image, -3)=="gif" || substr($image, -3)=="GIF"){$im = imagecreatefromgif($image);}
    elseif(substr($image, -3)=="png" || substr($image, -3)=="PNG"){$im = imagecreatefrompng($image);}
   
    if($_GET['percent']){
        $x = round((imagesx($im)*$_GET['percent'])/100);
        $y = round((imagesy($im)*$_GET['percent'])/100);
        $yyy=0;
        $xxx=0;
        $imw = imagecreatetruecolor($x,$y);
    }elseif($_GET['w'] and $_GET['h']){
        $x = $_GET['w'];
        $y = $_GET['h'];
        $yyy=0;
        $xxx=0;
        $imw = imagecreatetruecolor($x,$y);
    }elseif($_GET['maxim_size']){
        if(imagesy($im)>=$_GET['maxim_size'] || imagesx($im)>=$_GET['maxim_size']){
            if(imagesy($im)>=imagesx($im)){
                $y = $_GET['maxim_size'];
                $x = ($y*imagesx($im))/imagesy($im);
            }else{
                $x = $_GET['maxim_size'];
                $y = ($x*imagesy($im))/imagesx($im);
            }
        }else{
            $x = imagesx($im);
            $y = imagesy($im);
        }
        $yyy=0;
        $xxx=0;
        $imw = imagecreatetruecolor($x,$y);
    }elseif($_GET['square']){
        if(imagesy($im)>=$_GET['square'] || imagesx($im)>=$_GET['square']){
            if(imagesy($im)>=imagesx($im)){
                $x = $_GET['square'];
                $y = ($x*imagesy($im))/imagesx($im);
                $yyy=-($y-$x)/2;
                $xxx=0;
            }else{
                $y = $_GET['square'];
                $x = ($y*imagesx($im))/imagesy($im);
                $xxx=-($x-$y)/2;
                $yyy=0;
            }
        }else{
            $x = imagesx($im);
            $y = imagesy($im);
            $yyy=0;
            $xxx=0;
        }
        $imw = imagecreatetruecolor($_GET['square'],$_GET['square']);
    }else{
        $x = imagesx($im);
        $y = imagesy($im);
        $yyy=0;
        $xxx=0;
        $imw = imagecreatetruecolor($x,$y);
    }
   
    imagecopyresampled($imw, $im, $xxx,$yyy,0,0,$x,$y,imagesx($im), imagesy($im));
   
    if($_GET['watermark_text']){
        if($_GET['watermark_color']){$watermark_color=$_GET['watermark_color'];
        }else{
            $watermark_color="000000";
        }
        $red=hexdec(substr($watermark_color,0,2));
        $green=hexdec(substr($watermark_color,2,2));
        $blue=hexdec(substr($watermark_color,4,2));
       
        $text_col = imagecolorallocate($imw, $red,$green,$blue);
        $font = "cowboy.ttf"; //this font(georgia.ttf) heave to be in the same directory as this script
        $font_size = 12;
        $angle = 0;
        $box = imagettfbbox($font_size, $angle, $font, $_GET['watermark_text']);
        $x = 5;
        $y = 17;
        imagettftext($imw, $font_size, $angle, $x, $y, $text_col, $font, $_GET['watermark_text']);

    }
   
    if($_GET['type']=="jpg"){imagejpeg($imw);}
    elseif($_GET['type']=="gif"){imagegif($imw);}
    elseif($_GET['type']=="png"){imagepng($imw);}
    else{
        if(substr($image, -3)=="jpg" || substr($image, -3)=="JPG"){imagejpeg($imw);}
        elseif(substr($image, -3)=="gif" || substr($image, -3)=="GIF"){imagegif($imw);}
        elseif(substr($image, -3)=="png" || substr($image, -3)=="PNG"){imagepng($imw);}
    }
   
    imagedestroy($imw);
}
?>

-------------------- Script Slut ---------------------

Hvad skyldes dette problem?
Ville sætte pris på, hvis nogen kunne gå ind og rette det så det virkede korrekt.
Avatar billede jakobdo Ekspert
19. juli 2007 - 20:26 #1
jpeg burde kunne tilføjes med:

Ret:
if($_GET['type']=="jpg")
til:
if($_GET['type']=="jpg" || $_GET['type']=="jpeg")

Alle steder.
Avatar billede playr Nybegynder
01. august 2007 - 16:51 #2
Tak. Lav svar
Avatar billede jakobdo Ekspert
01. august 2007 - 19:10 #3
Svar.
Avatar billede jakobdo Ekspert
01. august 2007 - 19:10 #4
Kommentar...
Avatar billede jakobdo Ekspert
04. august 2007 - 08:27 #5
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester