Hallo...
Ik ben vandaag een beetje aan de gang gegaan met GD en PHP om een groot aantal images te resizen.
Dit script controleert ook wat de langste zijde is(dus breedte , hoogte of hoogte , breedte).
Zodat de images juist worden geresized.(niet dat we van die uitgetrokken images krijgen als de hoogte groter is dan de breedte)
Het gedeelte van het script dat die check doet , ziet er zo uit
Dit werkt allemaal perfect bij een image die breder is , dan dat hij hoog is.
Dus eigenlijk de normale resolutie.
Maar als een image hoger is , dan dat hij breed is , dan krijg ik aan de rechterkant van het geresized plaatje , en zwart strookje.
Wel staat de image er helemaal op , maar hij vult de rest op met een zwart strookje
Ter verduidelijking zal ik een voorbeeldje van een geresizede afbeelding hier posten

Mijn vraag is dus....
Waar gaat dit fout?
Want ik heb voor de ELSE functie , dus netjes alleen de variablen omgewisseld.
Of gaat er soms iets in mijn(niet al te grote) wiskundige bol iets mis? , want zo houdt ik mij toch aan de goede verhoudingen?
Hopelijk kunnen jullie mij weer iets opweg helpen
Ik ben vandaag een beetje aan de gang gegaan met GD en PHP om een groot aantal images te resizen.
Dit script controleert ook wat de langste zijde is(dus breedte , hoogte of hoogte , breedte).
Zodat de images juist worden geresized.(niet dat we van die uitgetrokken images krijgen als de hoogte groter is dan de breedte)
Het gedeelte van het script dat die check doet , ziet er zo uit
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| //if not , create the thumbnail file $sizes = getimagesize($imageName); $width = $sizes[0]; $heigth = $sizes[1]; $newWidth = $this->imageWidth; $newHeigth = $this->imageHeight; //create the filename for the new thumbnail file $fileName = $imageStart."_1_thumb.jpg"; //check which ratio(width/heigth) the image has //to resize in good format if($width >= $heigth) { //create the thumbnail $image_p = imagecreatetruecolor($newWidth, $newHeigth); $image_n = imagecreatefromjpeg($imageName); imagecopyresized($image_p, $image_n, 0, 0, 0, 0, $newWidth, $newHeigth, $width, $heigth); imagejpeg($image_p, $site."/".$fileName, 50); } elseif($heigth >= $width) { //create the thumbnail $image_p = imagecreatetruecolor($newHeigth,$newWidth); $image_n = imagecreatefromjpeg($imageName); imagecopyresized($image_p, $image_n, 0, 0, 0, 0, $newHeigth,$newWidth, $heigth,$width); imagejpeg($image_p, $site."/".$fileName, 50); |
Dit werkt allemaal perfect bij een image die breder is , dan dat hij hoog is.
Dus eigenlijk de normale resolutie.
Maar als een image hoger is , dan dat hij breed is , dan krijg ik aan de rechterkant van het geresized plaatje , en zwart strookje.
Wel staat de image er helemaal op , maar hij vult de rest op met een zwart strookje
Ter verduidelijking zal ik een voorbeeldje van een geresizede afbeelding hier posten

Mijn vraag is dus....
Waar gaat dit fout?
Want ik heb voor de ELSE functie , dus netjes alleen de variablen omgewisseld.
Of gaat er soms iets in mijn(niet al te grote) wiskundige bol iets mis? , want zo houdt ik mij toch aan de goede verhoudingen?
Hopelijk kunnen jullie mij weer iets opweg helpen
www.degroot-it.nl