Avatar billede hav0k Nybegynder
30. december 2005 - 21:05 Der er 4 kommentarer og
1 løsning

Komprimering af billeder?

Findes der overhovedet en måde at komprimere billeder der bliver uploadet i en MySQL database på? Er igang med et site hvor der godt kan komme til at ligge mange db rækker med billeder, og har ikke helt serverplads til at de fylder 0,5 mb pr. stk. Eftersom min målgruppe nok har lidt svært ved selv at ligge og lege med billedkomprimering så er det ret nødvendigt for mig, på en eller anden måde at kunne gøre det. Is it possible, i php, javascript eller hvad der nu kan håndtere det?
Avatar billede stormdk Nybegynder
31. december 2005 - 14:31 #1
Hmm, du kan resize billederne til en dårligere kvalitet - men det giver ofte dårlige resultater, men kan lyde som din eneste løsning - eller simpelt hen sætte en maximum størrelse for hvad billederne egentlig må fylde.

Hvis vi nu siger dit input hedder 'userfile'.

if($_FILES['userfile']['size'] > 216800){
echo"Hov hov, billedet fylder for meget du";
}

Dette er en størrelse på ca 200 byte.

$picture = $_FILES["userfile"]["tmp_name"];

$width = 200;
$height = 200;

list($width_orig, $height_orig) = getimagesize($picture);

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($picture);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);


imagejpeg($image_p, "img/users/$rs[id].jpg", 95);

Dette skulle også resize billedet, så dimensionerne ikke bliver over 200 px på nogen af kanterne.

Håber du kan bruge dette til noget.
Avatar billede stormdk Nybegynder
31. december 2005 - 14:32 #2
Forresten, hvis du vil ha dårligere kvalitet skal du ændre på
imagejpeg($image_p, "img/users/$rs[id].jpg", 95);

Kunne du fx ændre til

imagejpeg($image_p, "img/users/$rs[id].jpg", 85);


Dette giver en tydelig forværret kvalitet, men gør til gengæld at billedet ikke fylder nær så meget.
Avatar billede hav0k Nybegynder
04. januar 2006 - 19:25 #3
Hvordan får jeg billedet ned i en database? (er det nok bare med en 'blob' til selve billedfilen, eller?)
Avatar billede hav0k Nybegynder
15. januar 2006 - 13:29 #4
Tænkte også lidt på den der linie: imagejpeg($image_p, "img/users/$rs[id].jpg", 85); skal den sættes som en variabel oder? fx:

$imgfile = imagejpeg($image_p, "img/users/$rs[id].jpg", 85);

eller skaber imagejpeg selv den variabel?
Avatar billede hav0k Nybegynder
02. maj 2009 - 13:47 #5
okay gammelt indlæg, lukker...
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