๐Ÿš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #1837

Re: [PHP]gd2 library?

#1837
From: Joris Janssens
Date: Fri, 12 Nov 2004 22:35
99 lines
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-mail
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>

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