20. juni 2005 - 15:32Der er
15 kommentarer og 1 løsning
ændre størrelsen på billede
Jeg sidder og er ved at lave noget med nogle billeder. Når folk uploader deres billede, vil jeg gerne have den til at ændre størrelsen på billedet. Jeg har fået det til at virke, sådan at når de uploader billedet, bliver billedet lagt ind i en mappe og der bliver lagt et link ind i min mysql-db. Men hvordan ændre jeg sådan at billedet kun bliver gemt i den ønskede opløsning? Jeg vil ikke lave en ny fil, da det udelukkende er for at spare plads på mit webhotel.
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
$source_id = imageCreateFromJPEG($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $dest_x = 123; // ønsket x størrelse i pixels $dest_y = 92; // ønsket y størrelse i pixels $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); } ?>
Denne funktion skaber en kopi af det originale billede. Hvis du kun ønsker det nye billede, kan du jo lave en funktion, der sletter det originale billede...
kourinsu, det lyder som en fornuftig løsning. Jeg regner min højde på billedet ud først, så jeg har højden som en variabel, men det lader ikke til funktionen kan lide variabler. <? $imagesize = getimagesize($nyt_navn); $width = 400; $hight = $imagesize[1] / ($imagesize[0] / 400); $hight = round($height);
function Thumb($sourcefile, $targetfile) { $source_id = imageCreateFromJPEG($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $dest_x = 400; // ønsket x størrelse i pixels $dest_y = $height; // ønsket y størrelse i pixels $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); } ?>
Skriver jeg echo $height, giver den mig et tal, fx 288, men skriver jeg bare 288, så virker det fint.
Desværre, nej, det var ikke den lille fejl. Den kommer med den her fejl: Warning: imagecreatetruecolor(): Invalid image dimensions in /data/webhotel/hjoerring/ny/Billeder/gem_billede.php on line 46
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /data/webhotel/hjoerring/ny/Billeder/gem_billede.php on line 47
Warning: imagejpeg(): supplied argument is not a valid Image resource in /data/webhotel/hjoerring/ny/Billeder/gem_billede.php on line 48
Hmmm....har aldrig set det før. Det kunne måske være fordi, den ikke kan finde det billede du prøver at arbejde med. Når du angiver $pic og $thumb, kan du prøve at skrive hele stien: /data/webhotel/hjoerring/ny/Billeder/billednavn.jpg
Det hjælper heller ikke. Men tror også nærmere det er noget med variablen den ikke kan li, den skriver jo "Invalid image dimensions". Jeg har også forsøgt at sætte $height = 288. Men det giver samme fejl.
jeg havde lidt problemer med GDI+ (C#) ... fejlen opstod fordi jeg brugte ints... og nogle billeder's bredde vil jo blive komma tal... derfor typecast dem eller et eller andet php noget..
Jeg må sige, at jeg stadig tror, det er fordi den ikke kan finde det billede du angiver. Jeg bruger også funktionen i et andet script jeg har lavet, hvor jeg angiver størrelsen i variabler. Der virker den fint.
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.