Avatar billede htx98i17 Professor
06. juli 2010 - 17:36 Der er 7 kommentarer og
1 løsning

Omskrive jpeg resize funktion til gif resize funktion

Hej

Kan nogen omskrive denne funktion fra JPEG til GIF?

Vær opmærksom på at billedet hentes fra DB og scriptet hentes med <img src="billede.php?id=1&maxhoejde=300&maxvidde=100" >

billede.php:
<?php
   
    include("inc_db_connect.php");
    header("Content-type: image/jpeg");
       
   
    function imageresizejpeg($sourcefile,$maxwidth,$maxheight) {
       
        if($img_src = imagecreatefromstring($sourcefile)) {
            $width = imagesx($img_src);
            $height = imagesy($img_src);
        if($height > $maxheight || $width > $maxwidth) {
                $ratio_height=$maxheight/$height;
                $ratio_width=$maxwidth/$width;
                $ratio=min($ratio_width,$ratio_height);
                $newwidth=intval($width*$ratio);
                $newheight=intval($height*$ratio);
                $img_dst=imagecreatetruecolor($newwidth,$newheight);
                imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
                imagejpeg($img_dst);
                imagedestroy($img_dst);
            // echo "Billede gemmes som $destinationfile i størrelse $newwidth x $newheight.<BR>";
            }
            imagedestroy($img_src);
            return true;
        } else {
            return false;
        }
    }
   
    $hent = mysql_query("SELECT billede FROM tblbilleder WHERE id = '$_GET[id]' ") or die(mysql_error());
    $billede = mysql_fetch_array($hent);
   
    imageresizejpeg($billede['billede'],$_GET['maxhvidde'],$_GET['maxhoejde']);
   
   

?>
Avatar billede htx98i17 Professor
06. juli 2010 - 17:59 #1
Det er forresten transperante GIF's den skal kunne håndtere...
Avatar billede Slettet bruger
06. juli 2010 - 18:44 #2
Ifølge php.net vil funktionen imagecreatefromstring auto-detecte billedets type (gif/jpg).
- Så har du billedet i det interne (bitmap) format.

Så, mon ikke, du kan nøjes med at udskifte linjen
      imagejpeg($img_dst);
med
      imagegif($img_dst);
Avatar billede htx98i17 Professor
06. juli 2010 - 18:59 #3
Desværre, den skriver

<br />
<b>Warning</b>:  imagecreatetruecolor() [<a href='function.imagecreatetruecolor'>function.imagecreatetruecolor</a>]: Invalid image dimensions in <b>/data/www/vhosts/christiannielsen.eu/subdomains/dp/httpdocs/billede.php</b> on line <b>18</b><br />
<br />
<b>Warning</b>:  imagecopyresampled(): supplied argument is not a valid Image resource in <b>/data/www/vhosts/christiannielsen.eu/subdomains/dp/httpdocs/billede.php</b> on line <b>19</b><br />
<br />
<b>Warning</b>:  imagegif(): supplied argument is not a valid Image resource in <b>/data/www/vhosts/christiannielsen.eu/subdomains/dp/httpdocs/billede.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>:  imagedestroy(): supplied argument is not a valid Image resource in <b>/data/www/vhosts/christiannielsen.eu/subdomains/dp/httpdocs/billede.php</b> on line <b>21</b><br />
Avatar billede Slettet bruger
06. juli 2010 - 22:00 #4
Er du sikker på at det ER et "validt" billede du har liggende i databasen ?
Avatar billede htx98i17 Professor
06. juli 2010 - 22:28 #5
Det tror jeg da. Hvad er et ikke ikke validt billede?
Avatar billede Slettet bruger
07. juli 2010 - 01:33 #6
Jeg læste det som om det var funktionen imagecreatefromstring der fejlede.
- men det er det jo ikke. Det er først nede i imagecreatetruecolor...
Og resten er bare følgefejl.

Der MÅ være "noget galt" med parameterne $newwidth,$newheight (som den siger)
Avatar billede coderdk Praktikant
09. juli 2010 - 12:43 #7
Brug imageistruecolor og så brug imagecreatetruecolor eller imagecreate alt efter resultatet, og imagegif/imagejpeg alt efter om det er truecolor eller ej...
Avatar billede htx98i17 Professor
23. juli 2010 - 09:06 #8
Det blev lidt for omfattende ift hvor meget tid jeg havde til rådighed. Så løsningen blev at de billeder som skal kunne uploades, skal have det rigtige format.

Tak for deltagelsen til alle
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