[php] Image-functies werken niet...

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
1
CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality

... is het enige relevante (buiten een hele hoop vreemde tekens dus) wat ik te zien krijg na...

code:
1
2
$pict=imagecreatetruecolor(100,100);
imagejpeg($pict);


nu werkt er geen enkele functie mbt images in php, imagecreatetruecolor ed, niets werkt. Bleek dat ik versie 2 of hoger moest hebben van GD

code:
1
2
3
4
5
6
7
8
9
10
gd
GD Support                enabled
GD Version                bundled (2.0.15 compatible)
FreeType Support    enabled
FreeType Linkage    with freetype
GIF Read Support    enabled
JPG Support                 enabled
PNG Support                enabled
WBMP Support            enabled
XBM Support                enabled


... wat ik dus zou moeten hebben... hoewel de eroor die ik krijg anders doet vermoeden...
wat gaat er fout? het gaat zowel fout op m'n eigen server, als op de webspace waar ik het script op wil draaien

De bedoeling van het script is 'on the fly' thumbnails genereren van jpg's die in 1 bepaalde map staan, zodat dus enkel de thumbs doorgestuurd dienen te worden, en niet de hele foto, om die dan door de browser te laten resizen ([img].....[/img] <----- dat wil ik dus NIET)
ik heb al talloze kant-en-klare scripts getest, maar geen enkel wil werken...
wie kan helpen?

Acties:
  • 0 Henk 'm!

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Verwijderd schreef op 22 augustus 2004 @ 22:25:
code:
1
CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality

... is het enige relevante (buiten een hele hoop vreemde tekens dus) wat ik te zien krijg na...

code:
1
2
$pict=imagecreatetruecolor(100,100);
imagejpeg($pict);
Het plaatje wat je maakt is op zich OK, alleen je stuurt het uit als een default document, in dit geval een HTML pagina (text/html) dus wordt het gehaal als text geparsed door je browser.
Door de goede header mee te geven snapt je browser dat het een pic is:
code:
1
2
3
4
5
<?php
header('Content-type: image/jpeg');
$pict=imagecreatetruecolor(100,100);
imagejpeg($pict);
?>


laat dus wel een pic zien ;)
OM het netjes te doen zou ik er nog een header bij plakken met de filesize (mbv filesize() en dan "Content-length" opgeven. ZIe ook http://nl.php.net/manual/en/function.header.php

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dat maakte idd al enig verschil...

maar wat is er fout met dit?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$src_file="images/0028.png";
echo"[img]$src_file[/img]";
$destWidth=125;
$destHeight=125;
    $src_img = imagecreatefrompng($src_file);
    $dst_img = imagecreatetruecolor($destWidth, $destHeight);
    imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $destWidth, (int)$destHeight, $srcWidth, $srcHeight);
    header("Content-type: image/jpeg");
    imagejpeg($dst_img);
    imagedestroy($src_img);
    imagedestroy($dst_img);
?>


dit geeft me de png die ik vraag, maar dat komt door de: echo<img... code
en verder weer een hele hoop onleesbare tekens...

en dan ff een noob-opmerking: je zegt me de 'content' length mee te geven, maar waarom doe ik dat? wat is dat net, en waarvoor zou dat goed zijn?

thx

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 22 augustus 2004 @ 22:56:
dit geeft me de png die ik vraag, maar dat komt door de: echo<img... code
en verder weer een hele hoop onleesbare tekens...
Je geeft het zelf al aan, die echo mag daar niet staan.
Volgens mij haal je wat door elkaar. Een PHP script kan verschillende soorten output hebben, zoals bijvoorbeeld HTML. Echter je kan er ook images mee maken, maar _niet_ tegelijk!


edit:
Als ik me niet goed vergis, dan stuurt PHP zelf de content-length mee. Ik zal het even testen (mits niemand mij voor is :P )

edit:
Nee, dat doet hij dus niet, maar dat maakt eik niks uit, is niet verplicht, en daarnaast doe je dat met al je andere PHP files ook nooit.

[ Voor 26% gewijzigd door Erkens op 22-08-2004 23:01 ]


Acties:
  • 0 Henk 'm!

  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

Je kan niet twee verschillende MIME-types hebben op dezelfde pagina. Daarom werkt het dus niet...

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
idd, als ik de 'echo' eruit laat, dan werkt het wel!!!
maar...
hoe kan ik dat dan in een script gebruiken?
ik heb ook andere dingen weer te geven op die pagina, dus heb ik WEL echo's ed nodig...
include bied imo geen soulaas, omdat die gewoon invoegt wat je 'include'
functie maken mss...?

Acties:
  • 0 Henk 'm!

  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

[img]'scriptdatplaatjemaakt.php'[/img] :)

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 22 augustus 2004 @ 23:06:
idd, als ik de 'echo' eruit laat, dan werkt het wel!!!
maar...
hoe kan ik dat dan in een script gebruiken?
ik heb ook andere dingen weer te geven op die pagina, dus heb ik WEL echo's ed nodig...
include bied imo geen soulaas, omdat die gewoon invoegt wat je 'include'
functie maken mss...?
je moet dat script dat dat plaatje maakt gewoon zien als elk normaal plaatje zoals een png of jpeg file, die copy/paste je ook niet in je html ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ewel, gelle zijt slimme mensen!!!!! :)
bedankt, het werkt zo...
ik zet m'n eerste stapjes in php, dusja, nu ik de oplossing zie, lijkt het allemaal zeer logisch...
thx!!

maar nu jullie toch zo goed helpen: hoe kan ik variabelen doorgeven van het aanroepende script naar scriptdatdefotomaakt.php?

[ Voor 30% gewijzigd door Verwijderd op 23-08-2004 00:06 ]


Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17:49

ripexx

bibs

Wat dacht je van dit (pseudo code), oja hou er wel rekening mee dat je iets aan input checking enzo doet, zie ook de FAQ over het beveiligen van websites.
HTML:
1
[img]"http://servernaam/image.php?image_id=1&thumb=yes"/[/img]


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$image_id = $_GET['image_id'];
$thumb = $_GET['thumb'];

if($thumb == "yes")
{
    $image = get_image($image_id);
    //doe nog iets;
}
else
{
    // doe iets anders

};

[ Voor 36% gewijzigd door ripexx op 23-08-2004 01:45 ]

buit is binnen sukkel

Pagina: 1