thumbnail
ik dacht aan zoiets als:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
header('Content-Type: image/jpeg'); // om aan te geven dat er een jpeg aankomt
// gegevens
$pad_naar_foto_file = 'http://www.macosx.nl/images/articles/iMac-G5-plaatje.jpg'; // natuurlijk ook op te halen uit databases enz.
$breedte = 50;
$hoogte = 75;
// het echte werk
$foto = imagecreatefromjpeg($pad_naar_foto_file); // foto in php variabele inlezen
$dimension = getimagesize($foto); // dimensies opvragen van originele file
$thumbnail = imagecreatetruecolor($breedte, $hoogte); // lege thumbnail aanmaken
imagecopyresampled($thumbnail, $foto, 0,0,0,0,$breedte, $hoogte, $dimension[0], $dimension[1]); // de $foto naar de $thumbnail kopieren met het aanpassen van de dimensies
imagejpeg($thumb); // op scherm afbeelden
?>
header('Content-Type: image/jpeg'); // om aan te geven dat er een jpeg aankomt
// gegevens
$pad_naar_foto_file = 'http://www.macosx.nl/images/articles/iMac-G5-plaatje.jpg'; // natuurlijk ook op te halen uit databases enz.
$breedte = 50;
$hoogte = 75;
// het echte werk
$foto = imagecreatefromjpeg($pad_naar_foto_file); // foto in php variabele inlezen
$dimension = getimagesize($foto); // dimensies opvragen van originele file
$thumbnail = imagecreatetruecolor($breedte, $hoogte); // lege thumbnail aanmaken
imagecopyresampled($thumbnail, $foto, 0,0,0,0,$breedte, $hoogte, $dimension[0], $dimension[1]); // de $foto naar de $thumbnail kopieren met het aanpassen van de dimensies
imagejpeg($thumb); // op scherm afbeelden
?>
maar dat wil niet werken,
kan er iemand mij helpen?
het kan toch niet zo moeilijk zijn?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
header("content-type: image/png");
$imageToThumb = imagecreatefromjpeg($_GET['source']);
$originalWidth = imagesx($imageToThumb);
$originalHeight = imagesy($imageToThumb);
if (isset($_GET['width']) && !isset($_GET['height'])) {
$thumbWidth = $_GET['width'];
$thumbHeight = $thumbWidth * 3 / 4;
}
elseif (isset($_GET['height']) && !isset($_GET['width'])) {
$thumbHeight = $_GET['height'];
$thumbWidth = $thumbHeight * 4 / 3;
}
else {
$thumbWidth = $originalWidth / 2;
$thumbHeight = $originalHeight / 2;
}
$imageToOutput = imagecreatetruecolor($thumbWidth, $thumbHeight);
imagefill($imageToOutput, 0, 0, imagecolorallocate($imageToOutput, 255, 255, 255));
imagecopyresampled($imageToOutput, $imageToThumb, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $originalWidth, $originalHeight);
imagepng($imageToOutput);
imagedestroy($imageToOutput);
?>
header("content-type: image/png");
$imageToThumb = imagecreatefromjpeg($_GET['source']);
$originalWidth = imagesx($imageToThumb);
$originalHeight = imagesy($imageToThumb);
if (isset($_GET['width']) && !isset($_GET['height'])) {
$thumbWidth = $_GET['width'];
$thumbHeight = $thumbWidth * 3 / 4;
}
elseif (isset($_GET['height']) && !isset($_GET['width'])) {
$thumbHeight = $_GET['height'];
$thumbWidth = $thumbHeight * 4 / 3;
}
else {
$thumbWidth = $originalWidth / 2;
$thumbHeight = $originalHeight / 2;
}
$imageToOutput = imagecreatetruecolor($thumbWidth, $thumbHeight);
imagefill($imageToOutput, 0, 0, imagecolorallocate($imageToOutput, 255, 255, 255));
imagecopyresampled($imageToOutput, $imageToThumb, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $originalWidth, $originalHeight);
imagepng($imageToOutput);
imagedestroy($imageToOutput);
?>
Oproepen met ?source=...
Eventueel kun je nog $width of $height meegeven, waarmee je dus de maximale breedte OF hoogte opgeeft. Als je ?source=...&height=...&width=... gebruikt zal hij alleen de width als maximale breedte zien. Als er geen height of width wordt opgegeven worden hoogte en breedte gehalveerd.
Als je geen GD2.0 hebt maar 1.* kun je imagecreatetruecolor() vervangen voor imagecreate() en imagecopyresampled() voor imagecopyresized() geloof ik. Dan is het resultaat alleen wel veel minder.
http://www.macosx.nl/images/articles/iMac-G5-plaatje.jpg
kan dat kwaad?
de image moet wel vanuit een externe bron komen zoals bvb: kan dat kwaad?
Nop, werkt gewoon als het goed is. Anders moet je ehm, ergens een instelling veranderen dat je ook externe bestanden kunt openen. Ik weet zo niet waar dat is, kon bij mij gewoon standaard. Even testen zou ik zeggen, merk je het vanzelf :)
http://klanten.exclamation.be/images/test.php
http://www.ibiblio.org/Dave/Dr-Fun/thumb.jpg
een idee hoe ik dat doe?
http://klanten.exclamation.be/images/test.php
http://www.ibiblio.org/Dave/Dr-Fun/thumb.jpg
een idee hoe ik dat doe?
http://klanten.exclamation.be/images/test.php is het script wat ik net postte neem ik aan. Dan maak je op een andere pagina waar de thumbnail moet komen zo de thumbnail:
<img src="http://klanten.exclamation.be/images/test.php?source=http://www.ibiblio.org/Dave/Dr-Fun/thumb.jpg&width=400">
De 400 kan natuurlijk veranderd worden. Het plaatje wordt dan automatisch 400 breed. Hoogte bepalen kan ook dan wordt het dit:
<img src="http://klanten.exclamation.be/images/test.php?source=http://www.ibiblio.org/Dave/Dr-Fun/thumb.jpg&heigth=400">
Dan is de hoogte dus vierhonderd. Hoogte en breedte tegelijk kan niet, dan gebruikt het script alleen de breedte.
En zoals ik al gezegd had als je niets gebruikt dus geen hoogte en breedte verkleint ie hem met factor 2.
<img src="http://klanten.exclamation.be/images/test.php?source=http://www.ibiblio.org/Dave/Dr-Fun/thumb.jpg&width=400">
De 400 kan natuurlijk veranderd worden. Het plaatje wordt dan automatisch 400 breed. Hoogte bepalen kan ook dan wordt het dit:
<img src="http://klanten.exclamation.be/images/test.php?source=http://www.ibiblio.org/Dave/Dr-Fun/thumb.jpg&heigth=400">
Dan is de hoogte dus vierhonderd. Hoogte en breedte tegelijk kan niet, dan gebruikt het script alleen de breedte.
En zoals ik al gezegd had als je niets gebruikt dus geen hoogte en breedte verkleint ie hem met factor 2.