Avatar billede cybermaster Nybegynder
23. april 2004 - 14:38 Der er 4 kommentarer og
2 løsninger

thumbs on the fly

<p><img border="0" src="<? thumbs.php?pic=0.jpg ?>"></p>

hejsa alle sammen jeg havde engang et smart script til at lave mindre billeder, i det samme som siden blevet loadet.

Har i noget liggende som jeg kan bruge.

Billedet skal resize men ikke gemmens på computeren, og ikke skæres, men det skal være et pænt resize.
Avatar billede dennismp Nybegynder
23. april 2004 - 18:07 #1
Hvorfor ikke scalere det ved upload, og dermed undgå at belaste serveren unødvendigt?
Avatar billede googolplex Novice
23. april 2004 - 19:31 #2
Du kan bruge denne klasse:

http://www.teckis.com/compiled_files/img_create.php

Men ligesom dennismp vil kraftigt fraråde at generere thumbnails on the fly, gør det når du uploader billedet :)
Avatar billede cybermaster Nybegynder
24. april 2004 - 10:52 #3
Nå man snakker belastning af server kontra dette script, hvor meget er det så rent faktisk i snakker om, (det er ca. 20 pic pr side)
Avatar billede googolplex Novice
24. april 2004 - 12:08 #4
20 billeder bør du ikke generere on the fly med mindre det er din egen server, så er det jo op til dig :)

Men det kommer jo an på størrelsen mv., ikke nemt at sige noget præcist andet end at det er en dårlig fremgangsmåde generelt.
Avatar billede dennismp Nybegynder
24. april 2004 - 12:40 #5
20 billedere *er* formeget, da det er helt unødvendigt. Det drejer sig bare om at flytte scaleringsrutinen til der hvor du uploader billeder isstedet for ved visning.

Anyway, her er et utestet script der kan lave det on-the-fly:
<?PHP
$pic = $_GET['pic'];

// lav noget tjek som man ikke kan få vist andre filer end billeder

$size = getimagesize($pic);

// Ny størrelse.. 50% - skal nok ændres
$new_width = $size[0] / 2;
$new_height = $size[1] / 2;

$src = imagecreatefromjpeg($pic);
$dest =  imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($dest, $pic_1, 0, 0, 0, 0, 20, 20, 200, 200);

header("Content-type: image/jpeg");
imagejpeg($dest);
?>
Avatar billede cybermaster Nybegynder
24. april 2004 - 15:09 #6
<?php

function Thumb($sourcefile) {

    $targetfile = eregi_replace(".jpg","_thumb.jpg", $sourcefile);

    if (!file_exists("$targetfile")) {

    $size = 200;                            // Max størrelse (pixler)
    $source_id = imageCreateFromJPEG($sourcefile);
    $source_x = imagesx($source_id);
    $source_y = imagesy($source_id);
    $delta = $size/max($source_x, $source_y);
    $dest_x = round($source_x*$delta);
    $dest_y = round($source_y*$delta);
    $target_id=imagecreatetruecolor($dest_x, $dest_y);
    imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y);
    imagejpeg($target_id,$targetfile,100);
   
}
return $targetfile;
}

echo "<img src=\"" . Thumb("2.jpg") . "\">";

?>

har leget lidt med det men isted for ved upload, har jeg bare lagt det ved første visning.
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