resizen foto uit bestand, begrijp de foutmelding niet.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick G

patrick G

01/12/2007 13:18:00
Quote Anchor link
Ik include volgende code om de oudste foto uit een map te resizen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);
    

?>

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 ?
 
PHP hulp

PHP hulp

24/12/2024 18:51:56
 
- SanThe -

- SanThe -

01/12/2007 13:47:00
Quote Anchor link
$dimensions = getimagesize($bronvanhetbestand);
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 -
 
TJVB tvb

TJVB tvb

01/12/2007 13:48:00
Quote Anchor link
$bronvanhetbestand = '<img src="'.$geplaatste_foto.'">';
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.
 
Patrick G

patrick G

01/12/2007 14:06:00
Quote Anchor link
$geplaatste_foto is de naam van het bestand, komt uit een array waar ik de oudste foto (datum) uit selecteer.

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:
ÿØÿà&#65533;JFIF&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;ÿþ&#65533;>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ÿÛ&#65533;C&#65533;    $.' ",#(7),01444'9=82<.342ÿÛ&#65533;C  2!!22222222222222222222222222222222222222222222222222ÿÀ&#65533;&#65533;
enzenz .
Gewijzigd op 01/01/1970 01:00:00 door patrick G
 
- SanThe -

- SanThe -

01/12/2007 14:08:00
Quote Anchor link
Dan moet je dat dus gaan oplossen. Zie de FAQ
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Patrick G

patrick G

01/12/2007 14:17:00
Quote Anchor link
maar ik kan deze header niet vooraan in mijn pagina zetten want dan denkt de browser dat mijn gehele content image/jpeg is :(

Nu heb ik dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);?>


//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)
PHP script in nieuw venster Selecteer het PHP script
1
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]
Gewijzigd op 01/01/1970 01:00:00 door patrick G
 
Patrick G

patrick G

02/12/2007 17:29:00
Quote Anchor link
Ik heb het zelf al opgelost op een weinig galante manier,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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];
       }

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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.