Article View: be.comp.programming
Article #1837Re: [PHP]gd2 library?
From: Joris Janssens
Date: Fri, 12 Nov 2004 22:35
Date: Fri, 12 Nov 2004 22:35
99 lines
4496 bytes
4496 bytes
TiM schreef op 12/11/2004 :
> Ok, thx. Nu werkt dat toch al. Heb jij mss een idee hoe ik een thumbnail kan
> maken van een foto d.m.v. php. Ik heb wel al een functie gevonden op de site
> van php zelf maar het werkt precies niet echt. Hier is de pagina:
> http://be2.php.net/manual/en/ref.image.php en de functie die ik zou gebruiken
> is resampimagejpg(...). Hopelijk kan je me hierbij helpen.
1. je cre๏ฟฝert eerst een "image" van je afbeelding
$img=imagecreatefromjpeg('pics/foto1.jpg');
// geeft een lege string terug als het mislukt
2. dan maak je een lege image aan met de afmetingen van de thumbnail:
$thumb=imagecreatetruecolor(100,100);// (breedte,hoogte)
3. dan copieer je de image van je afbeelding naar die lege image:
$x=imagecopyresampled($thumb, $img, 0, 0, 0, 0, 100, 100,
imagesx($img), imagesy($img));
// $x is false als het mislukt, anders true
4. $thumb is nu een image van je thumbnail, nu moet je die image nog
naar een bestand wegschrijven (hier als jpg)
$y=imagejpeg($thumb,'pics/foto1_small.jpg',80);
// $y is false als het mislukt, anders true
// 80 is de kwaliteit (van 0 tot 100)
en *poef* je hebt een thumbnail
Hieronder de code van een thumbnailcreatie-functie die ik op m'n
website gebruik. Deze code "werkt", of het op de beste manier werkt is
iets anders. :)
parameters:
string $imgsrc => de plaats waar je foto staat (directory +
bestandsnaam)
string $where => de plaats waar je foto moet terechtkomen (directory)
string $prefix => kan je gebruiken om elke thumbnail door een prefix te
laten voorafgaan
int $maxsize => de maximum breedte of hoogte van de thumbnail
<?php
function createThumb($imgsrc,$where,$prefix,$maxsize) {
$done=false;
if (file_exists($imgsrc)) {
switch (strtolower(strrchr($imgsrc,'.'))) {
case '.jpeg':
case '.jpg':
$img=imagecreatefromjpeg($imgsrc);
break;
case '.png':
$img=imagecreatefrompng($imgsrc);
break;
default:
$img='';
break;
}
if ($img!=='') {
$breedte=imagesx($img);
$hoogte=imagesy($img);
$hob=$hoogte/$breedte;
if ($hob>1) {
$thumb_hoogte=$maxsize;
$thumb_breedte=$maxsize/$hob;
}
else {
$thumb_breedte=$maxsize;
$thumb_hoogte=$maxsize*$hob;
}
$thumb=imagecreatetruecolor($thumb_breedte,$thumb_hoogte);
$x=imagecopyresampled($thumb, $img, 0, 0, 0, 0, $thumb_breedte,
$thumb_hoogte, $breedte, $hoogte);
if ($x) {
$y=imagejpeg($thumb,$where . '/' . $prefix .
substr(basename($imgsrc),0,strlen(basename($imgsrc))-strlen(strrchr(basename($imgsrc),'.')))
. '.jpg',80);
if ($y) {
$done=true;
}
}
}
}
else {
echo '<p>the file "' . $imgsrc . '" does not exist </p>' . "\n";
}
return $done;
}
?>
--
Joris "flotspe" Janssens *** http://inferno.xhtml.be/
gecontroleerd op virussen door m'n huisdokter
Technical Details
Message-ID:
<mn.65877d4b215031be.14768@xhtml.invalid>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed.cwix.com!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mailReferences:
<Nu2ld.20187$FK.1212444@phobos.telenet-ops.be> <4194c9f3$0$37789$e4fe514c@news.xs4all.nl> <4194cc1c$0$37789$e4fe514c@news.xs4all.nl> <aG4ld.20324$K65.1262619@phobos.telenet-ops.be> <mn.644f7d4b838028f4.14768@xhtml.invalid> <YQ6ld.20526$k05.834663@phobos.telenet-ops.be> <mn.648c7d4b349e9a1d.14768@xhtml.invalid> <cI8ld.20711$IN2.1126454@phobos.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,306de54d80a26c37
X-Google-Attributes: gidfcea4,public
X-Google-Language: DUTCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed.cwix.com!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
Subject: Re: [PHP]gd2 library?
From: Joris Janssens <spam@xhtml.invalid>
References: <Nu2ld.20187$FK.1212444@phobos.telenet-ops.be> <4194c9f3$0$37789$e4fe514c@news.xs4all.nl> <4194cc1c$0$37789$e4fe514c@news.xs4all.nl> <aG4ld.20324$K65.1262619@phobos.telenet-ops.be> <mn.644f7d4b838028f4.14768@xhtml.invalid> <YQ6ld.20526$k05.834663@phobos.telenet-ops.be> <mn.648c7d4b349e9a1d.14768@xhtml.invalid> <cI8ld.20711$IN2.1126454@phobos.telenet-ops.be>
Newsgroups: be.comp.programming
Message-ID: <mn.65877d4b215031be.14768@xhtml.invalid>
Organization: xhtml.be
X-Newsreader: MesNews/1.02.00.00-nl
MIME-Version: 1.0
X-Face: 6}8V+h6Nm.>R&kg>m[fW/3_xh#')R1qmLJq00i\oElD(&1,8~vxM$?-p\#WW_?Wh|3f7Qkf ,:/J3BA53&vhqyS.bn_#pknb/JlH3bK%MxfBy=YwppQhLu`kG>)H9[eKYMnybm7F,svr4?=mO#=!hP PRi{,b3]3f#54`sy&#i78@9*m4QTZJkech=A[mk>q3F?+U1V7+&nu3f\c)%k'hA
Reply-To: usenet@xhtml.be
Content-Type: text/plain; charset="iso-8859-15"; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 100
Date: Fri, 12 Nov 2004 22:35:12 GMT
NNTP-Posting-Host: 213.118.5.29
X-Complaints-To: abuse@telenet.be
X-Trace: phobos.telenet-ops.be 1100298912 213.118.5.29 (Fri, 12 Nov 2004 23:35:12 MET)
NNTP-Posting-Date: Fri, 12 Nov 2004 23:35:12 MET