gdlib image resize

Tags:    php

i artiklen om at lave et fotoalbum i PHP er der henvist til en funktion af xyborx men linket er dødt? er der nogen der kan lave en tilsvarende funktion som resizer billedet eller forklare mig hvordan jeg gør?



7 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Hej, jeg har noget her du måske kan bruge...

<pre>
function Image_resize ($my_src_file, $dest_width, $dest_height, $dest_path) {

$size = GetImageSize($my_src_file);

$src_width = $size[0];

$src_height = $size[1];

$src_img = imagecreatefromjpeg("$my_src_file");

$dst_img = imagecreate($dest_width,$dest_height);

imagecopyresized($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_height, $src_width, $src_height);

imagejpeg($dst_img, $dest_path);

imagedestroy($src_img);

imagedestroy($dst_img);

}
</pre>



Jamen du'r den ikke kun med jpg billeder?


Jo! Lige præcis, nu skal du se :) Har helt tilfældigt lige lavet en funktion der kan håndtere både jpg, png og hvis serveren kører med en gammel gdlib version, gif.


Fold kodeboks ind/udKode 



Bemærk at du nok skal modificere det lidt i toppen :o)


--
Ronni Egeriis - squirrel development: http://sqdev.dk/



Den 24-09-03 16:57 skrev Steffen Pedersen følgende:
-----------------------------------------------------------------------------
i artiklen om at lave et fotoalbum i PHP er der henvist til en funktion af xyborx men linket er dødt? er der nogen der kan lave en tilsvarende funktion som resizer billedet eller forklare mig hvordan jeg gør?
-----------------------------------------------------------------------------

Jep, det er fordi min server er død. Heldigvis er google også din ven i den slags situationer, takket være deres cache ;)
http://www.google.com/search?q=cache:hR-xtf0tJ9wJ:www.xyborx.dk/image.php+xyborx+%22image+resizer%22&hl=en&ie=UTF-8

[edit] Nå.. Øv.. Nu virker det så ikke mere.. De har åbenbart slettet det fra cachen. Jeg skal se om jeg kan fremskaffe det igen (jeg ved hvor det er, og at det ikke er væk), og lægge det på en mere stabil server. [/edit]

Thus, I conclude
\\/ XyborX
/\\ www.xyborx.dk

[Redigeret d. 15/10-03 09:19:52 af XyborX]



<?php
function thumb($source, $scale, $quality = 80) {
/* tjekker om filen findes */
if (!file_exists($source)) {
echo "Filen findes ikke!";
} else {
$size = getimagesize($source); //finder image dimensioner og mime type
$w = $size[0] / $scale; //brede divideret
$h = $size[1] / $scale; //Højde divideret
$resize = imagecreatetruecolor($w, $h); //laver blankt billede

/* tjekker kvalitets muligheder. hvis kvaliteten er højerer end 100 retunér error */
if ($quality > 100) {
echo "Maximum kvalitet er 100. Kvalitets ændringer tager kun effekt på JPEG billeder!";
} else {
header('Content-Type: '.$size['mime']); //sætter mime typen for billedet f.eks (image/jpeg)

switch ($size['mime']) {
case 'image/jpeg':
$im = imagecreatefromjpeg($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $w, $h, $size[0], $size[1]); //genopbygger the orginale JPEG bille
imagejpeg($resize, '', $quality); //visser det nye billede i browseren
break;

case 'image/png':
$im = imagecreatefrompng($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $w, $h, $size[0], $size[1]); //genopbygger det orignale PNG billede
imagepng($resize, '', $quality); //visser det nye billede i browseren
break;
}
imagedestroy($im);
}




}
}

/* kalder billedet med $_GET */

@thumb($_GET['src'], $_GET['scale'], $_GET['quality']);

/* for at få billedet frem, skal man simpelt bare kalde den med : ?scr=example.jpg&scale=2&quality=100 */

/*$_GET['scr'] vil åbne billedet, $_GET['scale'] er hvor stort billedet skal være..
det er gjort med division, så 2 ville gøre billedet dobbelt så lille */




?>




Jamen du'r den ikke kun med jpg billeder?



sorry guys jeg fandt ud af det ved hjælp af ronnis eksempel



Det er i orden. Jeg har ellers lige fået den op på min server igen.

Thus, I conclude



t