Formaat foto's aanpassen aan venstergrootte
ik heb even een vraagje.
Ik heb een aantal foto's in .jpg formaat die ik op mijn website wil laten zien. Niet een geavanceerd foto-album, maar gewoon de foto's onder elkaar in beeld.
Het probleem is echter dat niet alle foto's geheel in het venster te zien zijn: je moet soms naar rechts en / of naar onderen scrollen om de hele foto te zien.
Mijn vraag is hoe je automatisch het formaat van de foto aan de venstergrootte aanpast.
Dus eigenlijk een soort script dat de venstergrootte vaststelt en op basis daarvan bepaalt welke foto's verkleind moeten worden.
Alvast bedankt voor jullie hulp!
Irene
Maar dat is geen mooie oplosing. als de foto's op de server een bepaalde maat hebben schaalt html de foto naar een.. kleinere maat dat is nie goe.
ziet er niet uit.
Gewijzigd op 03/02/2006 13:55:00 door auke Jongbloed
bedankt voor je reactie!
Misschien een domme vraag, maar hoe doe je dat precies: alle foto's met behulp van php resizen?
De foto's verschillen trouwens behoorlijk in formaat.
Gewijzigd op 03/02/2006 14:16:00 door Irene
Sorry Auke, ik ga even van je php methode af, het is wel de beste, maar het is wel lastig met weinig kennis van php.
Als je de foto's in een tabel hebt staan, of gewoon in een tekst, geef dan geen height op, maar doe width="90%"
dan mag die nooit buiten je pagina uitkomen.
De foutmelding die ik krijg is: Parse error: parse error, unexpected $ in doc.php on line 39
Ik hoop dat iemand mij op de fouten wil wijzen. Dit is wat ik tot nu toe heb:
Code (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
27
28
29
30
31
32
33
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
27
28
29
30
31
32
33
<?php
$maximum = 495; //maximum in pixels
if(!empty($foto)){
list($width, $height, $type, $attr) = getimagesize($foto);
if($width > $height){
//horizontaal
$ar = $height / $width;
if ($width < $maximum){
for($width; $width <= $maximum; $width++){
$height = round($width * $ar);
}
}
else{
for($width;$width >= $maximum; $width--){
$height = round($width * $ar);
}
}
}
else{
//verticaal
$ar = $width / $height;
if ($height < $maximum){
for($height; $height <= $maximum; $height++){
$width = round($height * $ar);
}
}
else{
for($height;$height >= $maximum; $height--){
$width = round($height * $ar);
}
}
}
?>
$maximum = 495; //maximum in pixels
if(!empty($foto)){
list($width, $height, $type, $attr) = getimagesize($foto);
if($width > $height){
//horizontaal
$ar = $height / $width;
if ($width < $maximum){
for($width; $width <= $maximum; $width++){
$height = round($width * $ar);
}
}
else{
for($width;$width >= $maximum; $width--){
$height = round($width * $ar);
}
}
}
else{
//verticaal
$ar = $width / $height;
if ($height < $maximum){
for($height; $height <= $maximum; $height++){
$width = round($height * $ar);
}
}
else{
for($height;$height >= $maximum; $height--){
$width = round($height * $ar);
}
}
}
?>
ik heb nu een ander script. Hierbij krijg ik geen foutmeldingen meer te zien. Maar helaas ook geen foto!
Dit is het script
Code (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
27
28
29
30
31
32
33
34
35
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
27
28
29
30
31
32
33
34
35
<?php
$max_width = 400;
$max_height = 400;
{
$imagearray = getimagesize("foto.jpg");
$width = $imagearray[0];
$height = $imagearray[1];
if($width > $max_width || $height > $max_height) {
if($width / $height > $max_width / $max_height) {
$nieuwe_width = $max_width;
$waarde = $width / $max_width;
$nieuwe_height = round($height / $waarde);
} else {
$nieuwe_height = $max_height;
$waarde = $height / $max_height;
$nieuwe_width = round($width / $waarde);
}
} else {
$nieuwe_width = $width;
$nieuwe_height = $height;
}
return array($nieuwe_width, $nieuwe_height);
}
?>
$max_width = 400;
$max_height = 400;
{
$imagearray = getimagesize("foto.jpg");
$width = $imagearray[0];
$height = $imagearray[1];
if($width > $max_width || $height > $max_height) {
if($width / $height > $max_width / $max_height) {
$nieuwe_width = $max_width;
$waarde = $width / $max_width;
$nieuwe_height = round($height / $waarde);
} else {
$nieuwe_height = $max_height;
$waarde = $height / $max_height;
$nieuwe_width = round($width / $waarde);
}
} else {
$nieuwe_width = $width;
$nieuwe_height = $height;
}
return array($nieuwe_width, $nieuwe_height);
}
?>
Wie weet waar de fout zit?
Ik ben zelf helemaal niet ervaren maar,
Kijk ff op: www.mywebmymail.com
Download:EasyPhpAlbum 1-3-1
Maak een pagina aan index.php
En ga naar:
// ### Photo manipulation for display ###
Verander hier je resize etc
Echt plakky cake
Suc7 Gr Voula
Je kunt inloggen via explorer als het op de server staat via: index.php?admin=1
Wachtwoord en gebruikersnaam kan je veranderen:
// ### Login - Administrator access ###
$admin_access=true;
$admins='beheerdersnaam,wachtwoord';
Gasten Wachtwoord en gebruikersnaam actieveren:
// ### Login - Restrict access ###
$restrict_access=true;
$users='gast,1234';
Of vindt je het nix kan ook
Gr Voula