verkleinen van foto geeft foutmelding

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

02/03/2013 21:54:25
Quote Anchor link
Ik probeer een foto te verkleinen en weg te schrijven. De code die ik gebruik is:

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
<?php
// The file
$filename = 'test/PP1132410_bew.JPG';

// Set a maximum height and width
$width = 200;
$height = 200;

// Content type
header('Content-Type: image/jpeg');

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
}
else {
   $height = $width/$ratio_orig;
}


// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, 'test/test200.jpg', 80);
?>


als ik het script draai krijg ik de volgende foutmelding:
Quote:
"De afbeelding “http://domeinnaam/verklein.php” kan niet worden weergegeven, omdat deze fouten bevat."

Het bestandje test200.jpg is niet aangemaakt.

Ten eerste hoeft de foto niet getoond te worden. Maar wel weggeschreven. Wie weet wat ik fout doe?
Gewijzigd op 02/03/2013 21:56:19 door
 
PHP hulp

PHP hulp

22/01/2020 23:40:09
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/03/2013 21:59:19
Quote Anchor link
Waarschijnlijk moet je de rechten even aanpassen van de map test. Die zullen wellicht op 777 staan. Zet ze eens op 666.
 
Obelix Idefix

Obelix Idefix

02/03/2013 22:04:47
Quote Anchor link
Waar komt die foutmelding vandaan?
Daarin staat iets over afbeelding, maar in het pad staat een php bestand (verklein.php)
 

02/03/2013 22:07:44
Quote Anchor link
@frank
Het geeft geen verschil. Zelfde foutmelding

volgens mij heeft 666 minder rechten dan 777.

@obelix en idefix
de foutmelding staat op mijn browsersscherm (firefox)
verklein.php is de naam van het script dat hierboven staat.
Gewijzigd op 02/03/2013 22:09:55 door
 
Obelix Idefix

Obelix Idefix

02/03/2013 22:17:00
Quote Anchor link
Die foutmelding komt niet uit bovenstaande code.

Kloppen de paden en de bestandsnamen?
Gewijzigd op 02/03/2013 22:18:18 door Obelix Idefix
 

02/03/2013 22:18:24
Quote Anchor link
waar komt die dan vandaan en waarom wordt het bestand niet aangemaakt? of heb ik totaal de verkeerde code om een plaatje te verkleinen?

de paden en bestandsnamen kloppen
Gewijzigd op 02/03/2013 22:20:58 door
 
Jan Koehoorn

Jan Koehoorn

02/03/2013 22:21:46
Quote Anchor link
Laatste regel veranderen in:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    imagejpeg ( $image_p );
?>
 

02/03/2013 22:24:40
Quote Anchor link
@ Jan
Dan wordt de foto zeker niet weggeschreven toch. Maar wel even geprobeerd. Geeft precies dezelfde foutmelding.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/03/2013 22:24:41
Quote Anchor link
ik bedoel het andersom inderdaad. met 777 heb je meer dan voldoende rechten
 

02/03/2013 22:25:22
Quote Anchor link
@frank
dat dacht ik al, meer kan niet volgens mij
 
Jan Koehoorn

Jan Koehoorn

02/03/2013 22:27:16
Quote Anchor link
Dan moet het een rechtending zijn. Ik heb jouw script gekopieerd, zie voorbeeld:

www.jankoehoorn.nl/phphulp/

Script:
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
<?php
    // The file
    $filename = 'chicaenollie.jpg';

    // Set a maximum height and width
    $width = 200;
    $height = 200;

    // Content type
    header ( 'Content-Type: image/jpeg' );

    // Get new dimensions
    list ( $width_orig, $height_orig ) = getimagesize ( $filename );

    $ratio_orig = $width_orig / $height_orig;

    if ( $width / $height > $ratio_orig ) {
        $width = $height * $ratio_orig;
    }

    else {
        $height = $width / $ratio_orig;
    }


    // Resample
    $image_p = imagecreatetruecolor ( $width, $height );
    $image = imagecreatefromjpeg ( $filename );
    imagecopyresampled ( $image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig );

    // Output
    imagejpeg ( $image_p );
?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/03/2013 22:30:57
Quote Anchor link
probeer het eens zonder header

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
//header('Content-Type: image/jpeg');
?>


Toevoeging op 02/03/2013 22:32:38:

Het kan namelijk zijn dat je toch al een beetje output gegenereerd hebt voor het verzenden van je header waardoor php een foutmelding geeft en zodoende je imagefile ongeldig is geworden.
 

02/03/2013 22:37:18
Quote Anchor link
@jan
welke rechten en eigenaren heb jij dan staan?

Toevoeging op 02/03/2013 22:39:22:

@frank
met jouw aanwijzing is de foutmelding wel anders:
Quote:
Fatal error: Call to undefined function imagecreatetruecolor() in /home/www/beheer/verklein.php on line 24


maar ja, het blijft een foutmelding
 
Jan Koehoorn

Jan Koehoorn

02/03/2013 22:42:58
Quote Anchor link
Op de map 777
Op het jpg bestand 666

Toevoeging op 02/03/2013 22:43:52:

Als de functie imagecreatetruecolor niet bestaat zal je script natuurlijk niet werken ;-)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/03/2013 22:43:56
Quote Anchor link
ja maar ik trapte wel de kat op zijn staart.

laat header nog even uitstaan en doe eens

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'Current PHP version: ' . phpversion();
?>
 

02/03/2013 22:46:24
Quote Anchor link
De huidige PHP versie: 5.2.4-2ubuntu5.26
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/03/2013 22:46:27
Quote Anchor link
Op http://www.php.net/manual/en/function.imagecreatetruecolor.php kun je het volgende lezen:
Quote:
Depending on your PHP and GD versions this function is defined or not. With PHP 4.0.6 through 4.1.x this function always exists if the GD module is loaded, but calling it without GD2 being installed PHP will issue a fatal error and exit. With PHP 4.2.x this behaviour is different in issuing a warning instead of an error. Other versions only define this function, if the correct GD version is installed.

Ik geloof dat jij zo een versie hebt.
Gewijzigd op 02/03/2013 22:51:54 door Frank Nietbelangrijk
 

02/03/2013 22:54:40
Quote Anchor link
Kan het niet helemaal volgen. Denk je dat ik de goede versie heb geïnstalleerd of juist niet. Ofwel: zit volgens jou het probleem in de versie?

Toevoeging op 02/03/2013 22:56:46:

Geen idee welke GD ik heb geinstalleerd. Is standaard installatie.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/03/2013 22:57:55
Quote Anchor link
Ja het probleem zit in de versie. De functie imagecreatetruecolor() wordt niet herkend en geeft dus een fatal error. Je kunt het nog proberen met imagecreate() maar dan heb je geen truecolor afbeeldingen.


Toevoeging op 02/03/2013 22:59:55:

als je een hoop onleesbare tekst krijgt dan doet ie het en moet je alleen header weer even aanzetten
 

02/03/2013 23:10:17
Quote Anchor link
Dus een oudere (4.06) versie doet het wel goed, maar een nieuwere 5.2.4-2 niet? Lijkt me vreemd.
 



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.