Avatar billede fcknet Nybegynder
18. april 2003 - 23:41 Der er 18 kommentarer og
1 løsning

Kan ikke finde billeder og resize

Jeg har fundet denne funktion, som resizer billeder:

http://80.196.139.200/snippets/fcknet.dk/resize.phps


Problemet er bare at den bliver ved med at skrive at den ikke kan finde billedet...
Hvis jeg klikker på linket i filen, kommer den med et billede (i fuld størrelse)...

Hvad kan der være i vejen?
Avatar billede olebole Juniormester
19. april 2003 - 01:27 #1
<ole>

Ehhhhh ..... klikker på hvilket link? Det er jo lidt svært at sige, hvor du laver fejl, når man ikke kan se din kode  :)
Har du GD-lib installeret?
Er du sikker på, du angiver den rigtige sti?

/mvh
</bole>
Avatar billede bigo Nybegynder
19. april 2003 - 09:19 #2
koden er ikke fuldendt (ikke når jeg henter den da..)
Avatar billede fcknet Nybegynder
19. april 2003 - 10:16 #3
<?php
/*************************************************************\
* Image resizer, version 2.0 - Mar9,2003                      *
* Returns true on success, false if there are errors          *
* If destination file is specified, resized picture will be  *
* saved with the specified name. Else, it is shown to browser *
* Version 2: Now scales both up and down, still preserving    *
*            aspect ratio, and it accepts not only jpeg, but  *
*            also png and possibly bmp                        *
}*************************************************************{
* Created by XyborX (www.xyborx.dk)                          *
* Feel free to use, modify and distribute, without profit.    *
* I cannot be held liable for any damage this script might do *
\*************************************************************/
function imageresize($sourcefile,$maxwidth,$maxheight,$destinationfile=false)
{
    $types=Array();
    $types[1]='gif';
    $types[2]='jpeg';
    $types[3]='png';
    $types[6]='wbmp';
    list($width,$height,$type)=getimagesize($sourcefile);
    $type_name=$types[$type];
    $imagecreatefromtype='imagecreatefrom'.$type_name;
    $imagetype='image'.$type_name;
    if(!function_exists($imagecreatefromtype) || !function_exists($imagetype))
    {
        return false;
    }
    if($img_src=$imagecreatefromtype($sourcefile))
    {
        $ratio_height=$maxheight/$height;
        $ratio_width=$maxwidth/$width;
        $ratio=min($ratio_width,$ratio_height);
        $newwidth=$width*$ratio;
        $newheight=$height*$ratio;
        $img_dst=imagecreatetruecolor($newwidth,$newheight);
        imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        if($destinationfile==false)
        {
            //header("Content-type: image/jpeg");
            $imagetype($img_dst);
        }
        else
            $imagetype($img_dst,$destinationfile);
        imagedestroy($img_dst);
        return true;
    }
    else
    {
        return false;
    }
}


// Code below is only to demonstrate usage
if(!extension_loaded('gd'))
{
    echo 'Sorry, The GD-extension must be loaded for this to work..';
   
}
else
{
    if($_GET['image'])
    {
        $file='pic/'.str_replace(array(' ','/','\\'),'',$_GET['image']);
        $width=intval($_GET['width'])>0?intval($_GET['width']):150;
        $height=intval($_GET['height'])>0?intval($_GET['height']):150;
        if(!imageresize($file,$width,$height))
            echo 'Fejl. Kunne ikke åbne: <b><a href='.$file.'>'.$file.'</a></b>';
    }
}
?>
Avatar billede olebole Juniormester
19. april 2003 - 14:21 #4
Har du tænkt dig at svare på mine spm.?
Avatar billede fcknet Nybegynder
19. april 2003 - 14:33 #5
1) GD er installeret ( http://www.fcknet.dk/phpinfo.php )
2) Det er jo meningen at den skal kontrollere stien, ved at jeg får billedet frem hvis jeg klikker på linket til filen!
Avatar billede olebole Juniormester
19. april 2003 - 15:10 #6
Hvor er det, du checker det? Såvidt jeg kan se, bruger du da $sourcefile uden at have checket noget somhelst.

PS: Du ved godt, GD-lib ikke kan håndtere GIF-formatet, ikke? Du kan ikke bruge dette script med gif'er.
Avatar billede fcknet Nybegynder
19. april 2003 - 15:42 #7
1) Ved at linke til filen burde det da være at checke den, hvis linket referer rigtigt!
2) Det er KUN til JPG billeder!
Avatar billede fcknet Nybegynder
19. april 2003 - 15:43 #8
<b><a href='.$file.'>'.$file.'</a>
Avatar billede olebole Juniormester
19. april 2003 - 16:15 #9
1. Det kommer jo an på, hvordan din kode ser ud.
2. Hvorfor kan scriptet så håndtere gif'er? De burde da diskrimineres.

Din sidste kommentar er helt sort ........ hvad skal det ligne?
/mvh
Avatar billede fcknet Nybegynder
19. april 2003 - 16:30 #10
den linker til filen...
Avatar billede olebole Juniormester
19. april 2003 - 16:45 #11
Ja - og nej. Hvis det var rigtigt skrevet, ville det linke til filen, så denne bliver vist i browseren ....... det er vel ikke, hvad du vil  :)

Du må poste din kode - ellers kommer vi vist ikke meget længere
Avatar billede bigo Nybegynder
19. april 2003 - 17:40 #12
hmm.. hvis du kigger efter:

koden består af en funktion som gør ting ved et image.
men den består heller ikke af mere end et kald til funktionen.

Det du skal kigge efter er:

en form(lignende ting) der giver dig et imagenavn eller en funktion som søger igennem et dir for imagefiler

og så kalder denne funktion!

$_GET['image'] er jo navnet på den billedfil der skal behandles.. og $_GET er fra en form så vidt jeg husker..
Avatar billede fcknet Nybegynder
20. april 2003 - 09:14 #13
1) GET er fra en querystring (fil.php?query=string)
2) Jeg kalder scriptet via querystring

Et eksempel - hvor scriptet skulle virke er:

http://www.fcknet.dk/resize.php?image=Philip.jpg&width=300&height=300


Ole: Jeg har altså postet koden ovenfor!
Avatar billede bigo Nybegynder
20. april 2003 - 09:41 #14
hmm. klikker jeg på det link ovenover så får jeg en fejl. men klikker jeg på det link som den kommer ud med får jeg billedet. Det siger mig at det egentlig er en anden fejl end den den kommer med (kan ikke åbne).

Inde i funktionen er der en fejl.

kig på

    if(!function_exists($imagecreatefromtype) || !function_exists($imagetype))
    {
        return false;
       
    }

det er der den dør.
Avatar billede bigo Nybegynder
20. april 2003 - 09:46 #15
fejl: min fejl.. undskyld.

jeg har lige hentet koden. og prøvet det med

http://www.dulmens.dk/tobias/test.php?image=ying_yang.jpg&width=300&height=300

og det virker fino.

koden ser ud som følger hos mig:

<?php
/*************************************************************\
* Image resizer, version 2.0 - Mar9,2003                      *
* Returns true on success, false if there are errors          *
* If destination file is specified, resized picture will be  *
* saved with the specified name. Else, it is shown to browser *
* Version 2: Now scales both up and down, still preserving    *
*            aspect ratio, and it accepts not only jpeg, but  *
*            also png and possibly bmp                        *
}*************************************************************{
* Created by XyborX (www.xyborx.dk)                          *
* Feel free to use, modify and distribute, without profit.    *
* I cannot be held liable for any damage this script might do *
\*************************************************************/
function imageresize($sourcefile,$maxwidth,$maxheight,$destinationfile=false)
{
    $types=Array();
    $types[1]='gif';
    $types[2]='jpeg';
    $types[3]='png';
    $types[6]='wbmp';
    list($width,$height,$type)=getimagesize($sourcefile);
    $type_name=$types[$type];
    $imagecreatefromtype='imagecreatefrom'.$type_name;
    $imagetype='image'.$type_name;
    if(!function_exists($imagecreatefromtype) || !function_exists($imagetype))
    {
        return false;
       
    }
    if($img_src=$imagecreatefromtype($sourcefile))
    {
        $ratio_height=$maxheight/$height;
        $ratio_width=$maxwidth/$width;
        $ratio=min($ratio_width,$ratio_height);
        $newwidth=$width*$ratio;
        $newheight=$height*$ratio;
        $img_dst=imagecreatetruecolor($newwidth,$newheight);
        imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        if($destinationfile==false)
        {
            //header("Content-type: image/jpeg");
            $imagetype($img_dst);
        }
        else
            $imagetype($img_dst,$destinationfile);
        imagedestroy($img_dst);
        return true;
    }
    else
    {
        return false;
    }
}


// Code below is only to demonstrate usage
if(!extension_loaded('gd'))
{
    echo 'Sorry, The GD-extension must be loaded for this to work..';
   
}
else
{
    if($_GET['image'])
    {
        $file='img/'.str_replace(array(' ','/','\\'),'',$_GET['image']);
        $width=intval($_GET['width'])>0?intval($_GET['width']):150;
        $height=intval($_GET['height'])>0?intval($_GET['height']):150;
        if(!imageresize($file,$width,$height))
            echo 'Fejl. Kunne ikke åbne: <b><a href='.$file.'>'.$file.'</a></b>';
    }
}
?>

det eneste jeg har ændret er

$file='pic/'.str_replace(array(' ','/','\\'),'',$_GET['image']);

til

$file='img/'.str_replace(array(' ','/','\\'),'',$_GET['image']);
Avatar billede bigo Nybegynder
20. april 2003 - 09:46 #16
Fejlen var at jeg først prøvede med et gifbillede.. og det ville min gd ikke ;-)
Avatar billede olebole Juniormester
20. april 2003 - 15:14 #17
Nej, det har GD-lib ikke kunnet de sidste 5 år  :)
Avatar billede fcknet Nybegynder
07. januar 2004 - 17:57 #18
Skal vi lukke?
Jeg har fundet mig en dejlig resize class... :)
Avatar billede olebole Juniormester
08. januar 2004 - 01:26 #19
selvtak
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