ErikBooy007
Terugkerende gebruiker
- Lid geworden
- 24 mei 2007
- Berichten
- 3.814
Ik ben bezig met een script waarbij afbeeldingen geupload kunnen worden. Deze afbeelding worden dan ook geresized.
Nu is op zich het resizen niet zo'n probleem maar ik zit met het volgende:
Ik heb de afbeeldingen nodig in een bepaalde verhouding. Het gaat om de verhouding 38 x 23. Als ik dan een brede (landscape) foto heb, dan kan ik die best een stukje uitrekken naar dit formaat. Dat is zelfs vaak nog mooier. Maar als de afbeelding hoog (portrait) is, dan wil ik eigenlijk dat de afbeelding z'n verhoudingen behoud en de rest van de afbeelding het liefst doorzichtig is, maar het mag eventueel ook zwart zijn.
Nog even een paar afbeeldingen om het idee te verduidelijken.
Ik hoop dat jullie snappen wat ik bedoel.
Wat ik tot nu toe heb is:
Dit werkt in ieder geval, het komt redelijk letterlijk van php.net . Maar daarna loop ik een beetje vast. Maar dit is prima voor de brede afbeeldingen.
Ik hoop dat jullie me kunnen helpen, want de meeste mensen zitten er denk ik niet op te wachten als hun gezicht ineens 2 keer zo breed is op de foto.
Nu is op zich het resizen niet zo'n probleem maar ik zit met het volgende:
Ik heb de afbeeldingen nodig in een bepaalde verhouding. Het gaat om de verhouding 38 x 23. Als ik dan een brede (landscape) foto heb, dan kan ik die best een stukje uitrekken naar dit formaat. Dat is zelfs vaak nog mooier. Maar als de afbeelding hoog (portrait) is, dan wil ik eigenlijk dat de afbeelding z'n verhoudingen behoud en de rest van de afbeelding het liefst doorzichtig is, maar het mag eventueel ook zwart zijn.
Nog even een paar afbeeldingen om het idee te verduidelijken.

Ik hoop dat jullie snappen wat ik bedoel.
Wat ik tot nu toe heb is:
PHP:
// The file
$filename = $_FILES['userphoto1']['tmp_name'];
// Content type
header('Content-type: image/jpeg');
// Get new dimensions
list($width, $height) = getimagesize($filename);
// Resample
$image_p = imagecreatetruecolor(114, 69);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, 114, 69, $width, $height);
$f_output = 'images/user_' . $id . '_small.jpg';
// Output
imagejpeg($image_p, $f_output, 100);
Dit werkt in ieder geval, het komt redelijk letterlijk van php.net . Maar daarna loop ik een beetje vast. Maar dit is prima voor de brede afbeeldingen.
Ik hoop dat jullie me kunnen helpen, want de meeste mensen zitten er denk ik niet op te wachten als hun gezicht ineens 2 keer zo breed is op de foto.
