Avatar billede default Nybegynder
24. oktober 2008 - 21:36 Der er 14 kommentarer og
1 løsning

Optimere resize script?

Hejsa

Jeg har lavet et resize script til at resize store billeder ned, jeg har dog det problem at det tager en del tid at upload billeder for ham der bruger scriptet, han siger det går langsomt. Dette kan jo enten være hans upload forbindelsem, eller mit script. Kan mit script optimeres?


<?
$fra    = $_FILES['billede']['tmp_name'];

list($bredde, $hojde) = getimagesize($_FILES['billede']['tmp_name']);
$forhold = $hojde/$bredde;

$bredde_ny = 500;
$hojde_ny = round($bredde_ny*$forhold);

$ext2    = strtolower(end(explode(".", $_FILES['billede']['name'])));

if($ext2 == "jpeg" || $ext2 == "jpg")
{
$source = imagecreatefromjpeg($_FILES['billede']['tmp_name']);
}
if($ext2 == "gif")
{
$source = imagecreatefromgif($_FILES['billede']['tmp_name']);
}
$destination = imagecreatetruecolor($bredde_ny, $hojde_ny);

imagecopyresampled($destination, $source, 0, 0, 0, 0, $bredde_ny, $hojde_ny, $bredde, $hojde);

imagejpeg($destination, $_FILES['billede']['tmp_name']);

$ext    = strtolower(end(explode(".", $_FILES['billede']['name'])));

if($ext == "jpg" || $ext == "jpeg" || $ext == "gif")
{
$tid        = "pics";

$nytNavn = $tid . "_" . rand(1, 1000000) . "." . $ext;

$til        = "billeder/" . $nytNavn;

move_uploaded_file($fra, $til);
echo "<img src=\"billeder/$nytNavn\">";
}
?>

Jeg bruger en form til at uploade med selvfølgelig
Avatar billede majbom Novice
24. oktober 2008 - 22:04 #1
du kan bruge microtime, i starten og slutningen af resize-scriptet og se hvor lang tid den er om at resize billedet www.php.net/microtime
Avatar billede coderdk Praktikant
24. oktober 2008 - 23:32 #2
Hvis vi snakker sekunder, så er det hans uploadhastighed :P
Avatar billede coderdk Praktikant
24. oktober 2008 - 23:33 #3
(det er sikkert store billeder, han uploader?)
Avatar billede majbom Novice
25. oktober 2008 - 07:18 #4
lige præcis, jeg tror nemlig heller ikke på at det er scriptet der er sløvt, derfor det ville være rart at kunne bevise over for brugeren at scriptet, f.eks. kun er et halvt sekund om at resize billedet...
Avatar billede default Nybegynder
25. oktober 2008 - 16:40 #5
Hvordan laver jeg så den både laver en størrelse på 500 i bredde, og to thumbs på 36 x 36, samt en på 160x160?
Avatar billede coderdk Praktikant
25. oktober 2008 - 16:57 #6
Du gør vel bare det samme?!

Altså

$destination = imagecreatetruecolor($bredde_ny, $hojde_ny);

imagecopyresampled($destination, $source, 0, 0, 0, 0, $bredde_ny, $hojde_ny, $bredde, $hojde);

imagejpeg($destination, $_FILES['billede']['tmp_name']);

bare med nye bredde_ny, hoejde_ny og et andet navn?
Avatar billede default Nybegynder
25. oktober 2008 - 17:33 #7
Warning: imagejpeg() [function.imagejpeg]: SAFE MODE Restriction in effect. The script whose uid is 1384 is not allowed to access /tmp


giver den her fejl
Avatar billede coderdk Praktikant
25. oktober 2008 - 17:44 #8
Flyt filen med move_uploaded_file, inden du arbejder på den.
Avatar billede default Nybegynder
25. oktober 2008 - 17:45 #9
Den sletter vidst temp filen når jeg flytter den første fil
Avatar billede default Nybegynder
25. oktober 2008 - 20:16 #10
løsning fundet.!
Avatar billede majbom Novice
25. oktober 2008 - 20:28 #11
hvad er løsningen så?
Avatar billede default Nybegynder
25. oktober 2008 - 20:47 #12
på mit problem med thumbs:
$link = "billeder/$nytNavn";
$link2 = "billeder/lille_".$nytNavn."";
list($bredde2, $hojde2) = getimagesize($link);
$source2 = imagecreatefromjpeg($link);
$destination2 = imagecreatetruecolor(40, 40);
imagecopyresampled($destination2, $source2, 0, 0, 0, 0, 40, 40, $bredde2, $hojde2);
imagejpeg($destination2, $link2);

Og det med den er langsom er pga størrelsen på billedet.
Avatar billede default Nybegynder
25. oktober 2008 - 20:51 #13
Skal bare lige have fundet en løsning på noget javascript nu..
har 3 tabels hvor der et billede i hver.. hvis man så tager og kører musen over billedet i den 3 tabel, vil jeg gerne have den ændre backgroundimage på den første tabel, men det må jeg se om jeg kan finde ud af.

vil i have points? så aflæg svar :)
Avatar billede coderdk Praktikant
25. oktober 2008 - 21:00 #14
:)
Avatar billede majbom Novice
25. oktober 2008 - 21:14 #15
jeg siger nej tak, jeg hjalp jo ikke rigtig med noget :)
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