resizen foto uit bestand, begrijp de foutmelding niet.
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
36
37
38
39
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
36
37
38
39
<?php
//Waar komt het bestand vandaan?
$bronvanhetbestand = '<img src="'.$geplaatste_foto.'">';
//De hoogte en breedte ophalen van het plaatje
$dimensions = getimagesize($bronvanhetbestand);
//Dit is de breedte die alle plaatjes krijgen
$doelbreedte = 200 ;
//Hoogte en breedte toekennnen aan nieuwe variabelen
$bronbreedte = $dimensions[0];
$bronhoogte = $dimensions[1];
//De nieuwe hoogte berekenen aan de gegevens van het oude plaatje en de doel breedte
$doelhoogte = ($bronhoogte * $doelbreedte) / $bronbreedte;
//De hoogte, als het nodig is, afronden
$doelhoogte = round($doelhoogte, 0);
//Zeggen dat dit bestand een plaatje is
//header('content-type: image/jpeg');
//Het plaatje inlezen in de variabele $image
$image = imagecreatefromjpeg($bronvanhetbestand);
//een nieuw klein plaatje maken met de gewenste grootte
$destination = imagecreatetruecolor($doelbreedte, $doelhoogte);
//Het nieuwe plaatje vullen met verkleinde plaatje
imagecopyresampled($destination, $image, 0, 0, 0, 0, $doelbreedte, $doelhoogte, $bronbreedte, $bronhoogte);
//Het plaatje weergeven
imagejpeg($destination);
?>
//Waar komt het bestand vandaan?
$bronvanhetbestand = '<img src="'.$geplaatste_foto.'">';
//De hoogte en breedte ophalen van het plaatje
$dimensions = getimagesize($bronvanhetbestand);
//Dit is de breedte die alle plaatjes krijgen
$doelbreedte = 200 ;
//Hoogte en breedte toekennnen aan nieuwe variabelen
$bronbreedte = $dimensions[0];
$bronhoogte = $dimensions[1];
//De nieuwe hoogte berekenen aan de gegevens van het oude plaatje en de doel breedte
$doelhoogte = ($bronhoogte * $doelbreedte) / $bronbreedte;
//De hoogte, als het nodig is, afronden
$doelhoogte = round($doelhoogte, 0);
//Zeggen dat dit bestand een plaatje is
//header('content-type: image/jpeg');
//Het plaatje inlezen in de variabele $image
$image = imagecreatefromjpeg($bronvanhetbestand);
//een nieuw klein plaatje maken met de gewenste grootte
$destination = imagecreatetruecolor($doelbreedte, $doelhoogte);
//Het nieuwe plaatje vullen met verkleinde plaatje
imagecopyresampled($destination, $image, 0, 0, 0, 0, $doelbreedte, $doelhoogte, $bronbreedte, $bronhoogte);
//Het plaatje weergeven
imagejpeg($destination);
?>
Dit geeft de fout:
Warning: getimagesize(<img src="img/clubfoto/blabla.jpg">) [function.getimagesize]: failed to open stream: Invalid argument in D:\.....\resizefoto2.php on line 7
Wat doe ik fout ?
moet zijn:
$dimensions = getimagesize($geplaatste_foto);
Edit: Jij geeft html code mee terwijl de functie alleen het path moet hebben.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Dit klopt niet, het moet een direct path naar de afbeelding zijn.
<img src= is zeker geen path, daardoor kan die het bestand niet openen.
$bronvanhetbestand = $geplaatste_foto; zou dan eerder goed zijn.
Alleen vraag ik me af waar $geplaatste_foto vandaan komt. Ik hoop dat je register globals niet aan hebt staan.
Als ik deze opgeef dan volgt het probleem dat ik de header('content-type: image/jpeg'); niet kan meegeven omdat ik dan de melding krijg dat de header al geset is. (omdat dit een include is) vervolgens wordt dan de foto als onleesbare tekst weergegeven.
zoiets:
ÿØÿà�JFIF������ÿþ�>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ÿÛ�C� $.' ",#(7),01444'9=82<.342ÿÛ�C 2!!22222222222222222222222222222222222222222222222222ÿÀ��
enzenz .
Gewijzigd op 01/01/1970 01:00:00 door patrick G
FAQ
Dan moet je dat dus gaan oplossen. Zie de Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Nu heb ik dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
//Waar komt het bestand vandaan?
$bronvanhetbestand = '<img src="'.$geplaatste_foto.'">';
//De hoogte en breedte ophalen van het plaatje
$dimensions = getimagesize($geplaatste_foto);
//Dit is de breedte die alle plaatjes krijgen
$doelbreedte = 200 ;
//Hoogte en breedte toekennnen aan nieuwe variabelen
$bronbreedte = $dimensions[0];
$bronhoogte = $dimensions[1];
//De nieuwe hoogte berekenen aan de gegevens van het oude plaatje en de doel breedte
$doelhoogte = ($bronhoogte * $doelbreedte) / $bronbreedte;
//De hoogte, als het nodig is, afronden
$doelhoogte = round($doelhoogte, 0);?>
//Waar komt het bestand vandaan?
$bronvanhetbestand = '<img src="'.$geplaatste_foto.'">';
//De hoogte en breedte ophalen van het plaatje
$dimensions = getimagesize($geplaatste_foto);
//Dit is de breedte die alle plaatjes krijgen
$doelbreedte = 200 ;
//Hoogte en breedte toekennnen aan nieuwe variabelen
$bronbreedte = $dimensions[0];
$bronhoogte = $dimensions[1];
//De nieuwe hoogte berekenen aan de gegevens van het oude plaatje en de doel breedte
$doelhoogte = ($bronhoogte * $doelbreedte) / $bronbreedte;
//De hoogte, als het nodig is, afronden
$doelhoogte = round($doelhoogte, 0);?>
//Zeggen dat dit bestand een plaatje is
//header('content-type: image/jpeg');
Hier moet ik dus zorgen dat het bestand een plaatje is, maar bovenstaande werkt niet !
Is er een andere manier om dit te doen ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
//Het plaatje inlezen in de variabele $image
$image = imagecreatefromjpeg($geplaatste_foto);
//een nieuw klein plaatje maken met de gewenste grootte
$destination = imagecreatetruecolor($doelbreedte, $doelhoogte);
//Het nieuwe plaatje vullen met verkleinde plaatje
imagecopyresampled($destination, $image, 0, 0, 0, 0, $doelbreedte, $doelhoogte, $bronbreedte, $bronhoogte);
//Het plaatje weergeven
imagejpeg($destination);
[/code]
//Het plaatje inlezen in de variabele $image
$image = imagecreatefromjpeg($geplaatste_foto);
//een nieuw klein plaatje maken met de gewenste grootte
$destination = imagecreatetruecolor($doelbreedte, $doelhoogte);
//Het nieuwe plaatje vullen met verkleinde plaatje
imagecopyresampled($destination, $image, 0, 0, 0, 0, $doelbreedte, $doelhoogte, $bronbreedte, $bronhoogte);
//Het plaatje weergeven
imagejpeg($destination);
[/code]
Gewijzigd op 01/01/1970 01:00:00 door patrick G
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
if(!empty($_FILES['file'])){
$error = upload($_FILES['file']['tmp_name'],'img/clubfoto/',$filename,800,800);
$error = upload($_FILES['file']['tmp_name'],'img/archief/',$filename,200,200);
if($error[0] == true){
echo 'Upload is gelukt';
echo '<a href="index.php?t=uploadfoto.php">nog een foto</a>';
}else{
echo 'Error: '.$error[2];
}
$error = upload($_FILES['file']['tmp_name'],'img/clubfoto/',$filename,800,800);
$error = upload($_FILES['file']['tmp_name'],'img/archief/',$filename,200,200);
if($error[0] == true){
echo 'Upload is gelukt';
echo '<a href="index.php?t=uploadfoto.php">nog een foto</a>';
}else{
echo 'Error: '.$error[2];
}
Bij het uploaden laad ik 2 verschillende bestanden naar verschillende mappen.
bij het normaal bekijken van de foto kun je alleen de laatste 10 zien, de oudere zijn alleen (kleiner) zichtbaar in het archief