Toon posts:

Pictures resizen in PHP

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil plaatjes uploaden door middel van php.
Als ze weergegeven worden moeten ze een breedte van 150px hebben en een height die daar mee op schaal is, zodat de foto mooi blijft zoals ie hoort!

Hoe zorg ik daarvoor dat die height van die foto meegaat als ik in HTML de width op 150 zet?

  • MikeN
  • Registratie: April 2001
  • Laatst online: 13-09 17:41
http://www.php.net/manual/en/function.getimagesize.php
Onder het mom van: dat had je zelf kunnen opzoeken ;)

En dan doe je gewoon:
code:
1
nieuwe breedte / oude breedte * oude hoogte = nieuwe hoogte

  • budi
  • Registratie: Januari 2000
  • Laatst online: 07:50
Misschien zijn er makkelijkere oplossingen, maar ik zoek eerst uit wat de afmetingen zijn en vervolgens scale ik hem down of up naar bepaalde afmetingen:
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
26
<?
#bepaal bestandsnaam
$filename = bepaalBestandsnaam($number);

#bepaal afmetingen foto en zorg dat hij op het beeld past
$size = GetImageSize($filename);
$width  = $size[0];
$height = $size[1];

while ($height > $maxheigth)          # Indien hoogte te hoog is
{                                     # zowel breedte als hoogte
   $height = $height * 0.975;         # aanpassen.
   $width  = $width * 0.975;
}

while ($width > $maxwidth)
{
   $width  = $width * 0.975;          # ditto voor de breedte
   $height = $height * 0.975;
}

# druk de foto af
print "<IMG SRC=\"";
print $filename;
print "\" width=$width height=$height border=1>";
?>

De maxheigt en maxwidth heb ik zelf eerder gedefinieerd. Ik hoop dat je er wat mee kan?

MY Systemconfiguration: 10fingers@5chars/s; 2legs@5km/h; 1mouth@14k4; 2ears@18Khz; 2eyes@-6&-7


  • MikeN
  • Registratie: April 2001
  • Laatst online: 13-09 17:41
Doe je niet een beetje moeilijk? Telkens in stapjes van 0.975x kleiner?
Je kunt toch gewoon meteen de maximagesize pakken?
Dus:
PHP:
1
2
3
4
5
6
<?
if ($width > $maxwidth){
    $heigth = $maxwidth / $width * $heigth;
    $width = $maxwidth;
}
?>