[PHP] imagecopyresampled geeft code terug ipv resized

Pagina: 1
Acties:

Onderwerpen


  • ReseTTim
  • Registratie: Juni 2000
  • Laatst online: 20-09 16:23

ReseTTim

Chocolate addicted

Topicstarter
ik heb dus een functie dat je bestanden kan uploaden. is het een jpg bestand dan kan je deze resizen. nu heb ik de optie imagecopyresize / imagecopyresampled gevonden.. dit werkt volgensmij deels..

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
        if(move_uploaded_file($_FILES['bestandsnaam']['tmp_name'], "files/jpg/{$_FILES['bestandsnaam']['name']}")){ 

        $filename = "files/jpg/".$_FILES['bestandsnaam']['name'];
        
        // Set a maximum height and width
    $width = 125;
    $height = 167;

    // 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 = imagecreatefromjpeg($filename);
    $image_p = imagecreatetruecolor($width, $height);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

    // debug stukje
    echo $filename ."<br />" ;
    echo $image_p . " | ". $image ."<br />"; 
    
    // Output
    imagejpeg($image_p, null, 85);
     
    echo "bestand is geupload en geresized.";
    } else {
    echo "kan niet uploaden";
    }


geeft terug

files/jpg/Afbeelding 069.jpg
Resource id #12 | Resource id #11
ÿØÿàJFIFÿþ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 85

en dan geeft ie nog een hoop shit mee..

probleem is dus imagecopyresize of imagecopyresampled werkt bij mij niet. ik heb ook gekeken naar imagedestroy() maar dat was geen geldige functie oid kreeg ik terug..

de header heb ik geuncommand omdat hij een melding geeft van header is al gezet.

* ReseTTim zit zijn baard haren uit zijn gezicht aan het trekken (8>

Mijn profiel - Te koop: Overzicht van spullen..


  • Pino
  • Registratie: Oktober 2001
  • Laatst online: 18-09 14:08
Toch denk ik dat je het in je header stuk moet zoeken, je geeft jpeg data terug naar je browser maar geeft nu niet aan dat het jpeg is. Kijk dus even waarom er al header info is verstuurd.

[ Voor 16% gewijzigd door Pino op 14-09-2006 17:00 ]

"If you don't know where you are going, any road will take you there"


  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 07-07 15:40
de header heb ik geuncommand omdat hij een melding geeft van header is al gezet.
Dit is het probleem, zet je header regels helemaal bovenin je php bestand, en verwijder alle spaties voor <?php ...

Verder is het raar dat je echo gebruikt terwijl je zegt dat je een plaatje terug geeft, dat is natuurlijk niet mogelijk!!

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Haal iig je echo's weg. Wat er achter aan komt is wel gewoon JPEG data dus dat moet goed zijn. Als er geklaagd wordt over header() dan heb je wellicht een spatie of enter voor je <?php staan ofzo? Of include je dit script ergens vandaan? Iig ga uitzoeken waar die output vandaan komt :P

All my posts are provided as-is. They come with NO WARRANTY at all.


  • ReseTTim
  • Registratie: Juni 2000
  • Laatst online: 20-09 16:23

ReseTTim

Chocolate addicted

Topicstarter
djexplo schreef op donderdag 14 september 2006 @ 17:01:

Dit is het probleem, zet je header regels helemaal bovenin je php bestand, en verwijder alle spaties voor <?php ...

Verder is het raar dat je echo gebruikt terwijl je zegt dat je een plaatje terug geeft, dat is natuurlijk niet mogelijk!!
Warning: Cannot modify header information - headers already sent by (output started at uploadfile.php:21) in /uploadfile.php on line 221

heb de // voor header weg gehaald.. ik ga nog ffies kijken.. mja tis een file met 400 regels :X

line 221 = header("Content-type: image/jpeg");
CyBeR schreef op donderdag 14 september 2006 @ 17:02:
Haal iig je echo's weg. Wat er achter aan komt is wel gewoon JPEG data dus dat moet goed zijn. Als er geklaagd wordt over header() dan heb je wellicht een spatie of enter voor je <?php staan ofzo? Of include je dit script ergens vandaan? Iig ga uitzoeken waar die output vandaan komt :P
nee ik include hem nergens vandaan. gewoon een leuke upload page waar resize script ook meteen in zit.. of is dat het probleem??

[ Voor 32% gewijzigd door ReseTTim op 06-07-2009 01:39 ]

Mijn profiel - Te koop: Overzicht van spullen..


  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
En wat staat er dan op regel 21? ;)

[ Voor 150% gewijzigd door man-o-script op 14-09-2006 17:28 ]

//


  • ReseTTim
  • Registratie: Juni 2000
  • Laatst online: 20-09 16:23

ReseTTim

Chocolate addicted

Topicstarter
<meta name="keywords" content="">

btw het werkt.. heb een losstaande test bestand gemaakt..
http://www.domein.nl/resizetest.php?bestand=6

1 probleem is nu dat ie het dus niet opslaat :/ en het klote is dus dat het toch aan dat stukje met die header lag.. hoe ga ik dit oplossen? :X ik ga er nog ffies over nadenken..

[ Voor 19% gewijzigd door ReseTTim op 06-07-2009 01:38 ]

Mijn profiel - Te koop: Overzicht van spullen..


  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
Eerst alles verwerken en opslaan en dan pas data gaan echo'en als bijvoorbeeld een bevestiging. Als je hem op wilt slaan moet je wel een pad opgeven in je imagejpeg().

//


  • ReseTTim
  • Registratie: Juni 2000
  • Laatst online: 20-09 16:23

ReseTTim

Chocolate addicted

Topicstarter
man-o-script schreef op donderdag 14 september 2006 @ 17:39:
Eerst alles verwerken en opslaan en dan pas data gaan echo'en als bijvoorbeeld een bevestiging. Als je hem op wilt slaan moet je wel een pad opgeven in je imagejpeg().
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
40
41
42
43
44
45
46
<?
//resizetest.php
error_reporting(E_ALL); 
session_start();

require "con_/config.php"; 
        @mysql_connect($host, $userdb, $passdb) 
        or die("Unable to connect to SQL server"); 
        mysql_select_db($dbname);

$bestand = (isset($_GET) AND isset($_GET['bestand']) AND is_string($_GET['bestand']))?addslashes($_GET['bestand']):'nothing';       
        
$foto_qry = mysql_query("SELECT * FROM bestanden WHERE bestandid = '$bestand' and extensie = 'jpeg'");      

$result_foto = mysql_fetch_assoc($foto_qry);

  $filename = "files/jpg/".stripslashes($result_foto['bestandsnaam']);
        
        // Set a maximum height and width
    $width = 125;
    $height = 167;

    // 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 = imagecreatefromjpeg($filename);
    $image_p = imagecreatetruecolor($width, $height);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

   
    // Output
    imagejpeg($image_p, null, 85); 
    
?>


zoals je al ziet heb ik het al vereenvouwdigd.. en dit nog maar 1 bestand :)

Mijn profiel - Te koop: Overzicht van spullen..


  • Setragasj
  • Registratie: Augustus 2001
  • Laatst online: 14-09 19:35

Setragasj

is using radars to communicate

Als je je plaatje wilt opslaan dan moet je die null even vervangen. Als je die namelijk op null laat staan, dan wil php het plaatje gewoon weergeven zoals je nu dus hebt.

PHP:
1
imagejpeg($image_p, 'files/jpg/thumb_'.$_FILES['bestandsnaam']['name'], 85);

<Typ een persoonlijk bericht>


Acties:
  • 0 Henk 'm!

  • ReseTTim
  • Registratie: Juni 2000
  • Laatst online: 20-09 16:23

ReseTTim

Chocolate addicted

Topicstarter
Pino schreef op donderdag 14 september 2006 @ 16:59:
Kijk dus even waarom er al header info is verstuurd.
om even hier op weer te reageren.. bij het uploaden van de afbeelding wordt waarschijnlijk al de header meegegeven. want ik heb nu dus als laatste stukje code staan..

PHP:
1
imagejpeg($image_p, 'files/jpg/'.$bestandsnaam, 85);


en dan overschrijft hij doodleuk het geuploade bestand en maakt ie hem klein :P

het stukje header heb ik weer geuncommand.. hé bedankt :Y)

[edit]
uit veiligheid toch maar gewijzigd naar $_FILES['bestandsnaam']['name']

[ Voor 7% gewijzigd door ReseTTim op 15-09-2006 09:41 ]

Mijn profiel - Te koop: Overzicht van spullen..


Acties:
  • 0 Henk 'm!

  • Setragasj
  • Registratie: Augustus 2001
  • Laatst online: 14-09 19:35

Setragasj

is using radars to communicate

ReseTTim schreef op vrijdag 15 september 2006 @ 09:38:
PHP:
1
imagejpeg($image_p, 'files/jpg/'.$bestandsnaam, 85);

en dan overschrijft hij doodleuk het geuploade bestand en maakt ie hem klein :P
Ook als je hem een andere naam geeft?
Ik heb thumb_ voor de bestandsnaam neergezet.. Je moet niet dezelfde naam gebruiken als het originele plaatje natuurlijk...

[ Voor 4% gewijzigd door Setragasj op 15-09-2006 11:25 ]

<Typ een persoonlijk bericht>


Acties:
  • 0 Henk 'm!

  • ReseTTim
  • Registratie: Juni 2000
  • Laatst online: 20-09 16:23

ReseTTim

Chocolate addicted

Topicstarter
Setragasj schreef op vrijdag 15 september 2006 @ 11:24:
Ook als je hem een andere naam geeft?
Ik heb thumb_ voor de bestandsnaam neergezet.. Je moet niet dezelfde naam gebruiken als het originele plaatje natuurlijk...
waarom niet? ik wil dat juist wel.. want verder gaat die foto niet voor iets anders gebruikt worden in mijn geval. het is voor een smoelenboek. en foto's van 125 px breed is al groot genoeg om het gezicht te zien als ze staand worden afgebeeld.

Mijn profiel - Te koop: Overzicht van spullen..

Pagina: 1