Permalänk

Hur mycket serverkraft tar GD?

Jag sitter och klurar lite på thumbnails. Jag håller på att koda en blogg och håller nu på att göra så man kan bifoga bilder i sina meddelanden som ska visas som thumbnails.
Just nu använder jag en enkel funktion jag har gjort m.h.a. php-manualen:

<?php function nagelize($filename) { $width = 150; $height = 150; header('Content-type: image/jpeg'); list($width_orig, $height_orig) = getimagesize($filename); if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig; } else { $height = ($width / $width_orig) * $height_orig; } $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); imagejpeg($image_p, null, 100); } nagelize('../uploads/Super_Mario_World_Wallpaper.jpg'); ?>

Det som jag funderar över är om detta är ett dumt sätt att gå tillväga? Jag tänker mest hur mycket laddning det blir på servern jämfört med om jag skulle spara thumbnailen som en bild istället för att byta storlek på bilderna varje gång sidan laddas (som jag antar koden gör).

edit: nevermind. tror jag sparar thumbs ändå. (går ju inte ta bort tråden)

Visa signatur

"Knowledge amplification. What he learns, we all learn. What he knows, we all benefit from."

Permalänk
Medlem

Att generera en thumbnail när man laddar upp en bild är såklart mycket effektivare.
Om du vill ha koden till hur jag gör på http://pici.se så är det bara att säga till så pastear jag fast det är ju inte så klurigt egentligen så det går nog bra

Permalänk
Medlem

Är inte 100 onödigt bra kvalité på jpeg-komprimeringen? Jag brukar köra med 90.

Att för minska bilden varje gång den ska visas låter dumt, det tar drygt en sekund per bild för mig. Men då är det en bild på 3072x2304px. Det är inte speciellt svårt att spara den förminskade bilden i en mapp efter uppladdning.

Permalänk
Glömsk
Citat:

Ursprungligen inskrivet av mixdisk
Är inte 100 onödigt bra kvalité på jpeg-komprimeringen? Jag brukar köra med 90.

50 borde funka till och med. Betänk att kvalitéinställningen alltid är godtycklig och implementationsberoende, och dessutom sällan är linjär, speciellt inte om man ser till subjektiv bildkvalité kontra filstorlek. Vanligtvis brukar skillnaden mellan 95 och 100 vara nästan ickeexisterande kvalitetsmässigt, men skillnaden i storlek är mycket stor.

Som exempel har jag nedan tagit en slumpvald fotografisk bild (utsnitt på 800x600) och noterat storlekarna med Photoshops JPEG-komprimerare som förmodligen beter sig ganska mycket som den i GD:

Eftersom jag har dålig syn har jag inte försökt mig på att mäta bildkvalitén, däremot kan man ju tydligt säga att skillnaden mellan 75 och över 75 inte är värt det, framförallt inte med thumbnails.

Om nån har tid över vore det intressant om nån ville göra lite tester med GD.

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem

Jo, verkar dumt att göra om bilden varje gång sidan laddas. Fast måste du det kan du kanske använda imagecopyresize() istället, går typ dubbelt så snabbt som imagecopyresample() men kvalitén blir ju sämre och storleken på bilden lite större.

Det bästa och vanligaste är ju att skapa en thumbnail i samband med uppladdningen av bilden. Sen behövs ju inte jpeg kvalitén vara 100. Har du ont om plats på servern så sparar du mycket på att avända 80-90 istället, utan att det ser allt för dåligt ut.

Här kan du kolla det. OBS! Kan vara extremt segladdad då den för tillfället står på en vanlig adsl-lina.
http://wait.se/gd_overview/

Visa signatur

Självklart!

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Psionicist
50 borde funka till och med. Betänk att kvalitéinställningen alltid är godtycklig och implementationsberoende, och dessutom sällan är linjär, speciellt inte om man ser till subjektiv bildkvalité kontra filstorlek. Vanligtvis brukar skillnaden mellan 95 och 100 vara nästan ickeexisterande kvalitetsmässigt, men skillnaden i storlek är mycket stor.

Som exempel har jag nedan tagit en slumpvald fotografisk bild (utsnitt på 800x600) och noterat storlekarna med Photoshops JPEG-komprimerare som förmodligen beter sig ganska mycket som den i GD:

http://psionicist.online.fr/_jpeg.gif

Eftersom jag har dålig syn har jag inte försökt mig på att mäta bildkvalitén, däremot kan man ju tydligt säga att skillnaden mellan 75 och över 75 inte är värt det, framförallt inte med thumbnails.

Om nån har tid över vore det intressant om nån ville göra lite tester med GD.

Jag hade lite tid över: http://www.sweclockers.com/forum/showthread.php?s=&threadid=6...

Permalänk
Hedersmedlem

...Eller så cachar man bara thumbnailen.

if (!file_exists($image["filename"] . "_thumb." . $image["ext"])) { // gör thumbnail }

(Ej validerad kod)

Permalänk
Medlem

http://mtserver.mine.nu/qualitytest/index.php?q=100

Kodade ihop en liten grej i PHP. (För lite att göra på fritiden)
Bara och justera kvalitén (q) och kolla.

Är faktiskt inte så stor skillnad mellan 75 och 100 - Men visst skillnaden syns lite beroende på vad det är för bild (syns tydligare än på andra), men knappast värd filstorleken.

Sen finns det säkert bättre bilder att jämföra på.

Har inte suttit länge med det, gick väldigt fort.

Visa signatur
Permalänk
Medlem

jag ser ingen skillnad på 75 och 100, faktiskt. Kan bero på tftskärmar som inte har fullt så många färger som man kanske ibland önskar.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av totoo
jag ser ingen skillnad på 75 och 100, faktiskt. Kan bero på tftskärmar som inte har fullt så många färger som man kanske ibland önskar.

Jag valde en dum bild, det är lite svårt att se skillnaden på den bilden. =/ Dessutom sitter jag på en high-end Sony Trinitron CRT-skärm.

75 är standard och det är en bra siffra. (0 äger dock)

btw, tipsa om någon bra bild där ni tror man lätt kan se skillnader. Tänkte mig någon simpel abstrakt bild.

Bilden bytt, lättare att se skillnaden där solen tränger igenom och lämnar spår typ, dimmskuga typ.

Visa signatur