[PHP] setpixel - vreemde fout met kleur

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb de volgende php-code:

<?
Header("Content-type: image/jpeg");
$im = @imagecreatefromjpeg ($file);

$white = ImageColorAllocate($im, 255,255,255);

// uiterste hoeken
imagesetpixel($im,0,0,$white); // lb
imagesetpixel($im,0,1,$white); // lb + 1x
imagesetpixel($im,0,2,$white); // lb + 2x
imagesetpixel($im,1,0,$white); // lb + 1y
imagesetpixel($im,2,0,$white); // lb + 2y

// en zo nog een aantal keer setpixel

ImageJpeg($im);

ImageDestroy($im);

?>

Deze doet bij de volgende rode jpg-file wat hij zou moeten doen:
http://student-kmt.hku.nl...jpg&size_x=342&size_y=278

maar als ik dit plaatje erin stop doet hij ineens alles met zwart!? heeft iemand een idee waar dit aan kan liggen?
http://student-kmt.hku.nl...jpg&size_x=342&size_y=278

Acties:
  • 0 Henk 'm!

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 23-06 23:17
Mogelijk gebruik je een oudere versie van GD, waarin ImageCreateFromJpeg een plaatje van maximaal 256 kleuren teruggeeft in plaats van TrueColour. De oplossing is dan om eerst een plaatje te maken, dan je wit te allocaten en vervolgens de jpeg in het GD plaatje te laden. Zo kan de jpeg niet alle kleuren-"slots" opvullen.

Lees ook de manual/comments: http://nl3.php.net/manual...n.imagecreatefromjpeg.php

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
bedankt voor de tip, het probleem wordt daar inderdaad genoemd.....ik heb nu het geheel veranderd in:
<?
Header("Content-type: image/jpeg");
$im = imagecreate($size_x,$size_y);
$white = ImageColorAllocate($im, 255,255,255);

$imJPG = @imagecreatefromjpeg ($file);

imagecopy ( $im, $imJPG, 0, 0, 0, 0, $size_x,$size_y);

// drawing operations

ImageJpeg($im);

ImageDestroy($im);
?>

maar dit geeft bij mij (lokaal) 2 keer een "send error report"-box (met apache.exe als schuldige) en hij doet uiteraard online ook niet. als ik imagecreate verander in imagecreatetruespace doet hij het lokaal wel weer, maar online gebeurt er nog steeds niks

[ Voor 6% gewijzigd door Verwijderd op 25-02-2003 13:54 ]


Acties:
  • 0 Henk 'm!

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 23-06 23:17
Inderdaad, in de manual staat dat er een segmentation fault (een access violation) komt als je een TrueColour image over een palette image kopieert, waarbij ImageCreateTrueColor dit probleem zou moeten verhelpen. Dit alles duidt er trouwens op dat ImageCreateFromJpeg bij jou gewoon TrueColour plaatjes maakt, beetje vreemd...
edit:
(ben dus bang dat ik je met die palette en TrueColour problemen op een dwaalspoor breng)
.

Hoe bedoel je, "gebeurt er niks"? In de bovenstaande code doe je toch ook niks met het plaatje? :)

[ Voor 13% gewijzigd door Ericston op 25-02-2003 14:25 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ericston schreef op 25 February 2003 @ 14:21:
Hoe bedoel je, "gebeurt er niks"?
het plaatje dat naar de browser gestuurd wordt is...euhmm....niet werkend....ofzo :)

http://student-kmt.hku.nl/~peter9/gfx/slice/testim.php

Acties:
  • 0 Henk 'm!

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 23-06 23:17
Ah, ik zie het, er wordt dus geen plaatje naar de browser doorgestuurd, maar iets anders. En meestal zijn het in dit soort gevallen de foutmeldingen van je script. In Opera kan ik dan het plaatje laden en op bron weergeven drukken, makkelijker is om die header() en die @ even weg te halen en dan je script te laden.
Anyway, ik zie dan dit:
<br />
<b>Warning</b>: imagecreatetruecolor(): requires GD 2.0 or later in <b>/usr/people/peter9/public_html/gfx/slice/sliceimage.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>: imagecolorallocate(): supplied argument is not a valid Image resource in <b>/usr/people/peter9/public_html/gfx/slice/sliceimage.php</b> on line <b>4</b><br />
<br />
<b>Warning</b>: imagecopy(): supplied argument is not a valid Image resource in <b>/usr/people/peter9/public_html/gfx/slice/sliceimage.php</b> on line <b>8</b><br />
<br />
<b>Warning</b>: imagejpeg(): supplied argument is not a valid Image resource in <b>/usr/people/peter9/public_html/gfx/slice/sliceimage.php</b> on line <b>98</b><br />
<br />
<b>Warning</b>: imagedestroy(): supplied argument is not a valid Image resource in <b>/usr/people/peter9/public_html/gfx/slice/sliceimage.php</b> on line <b>100</b><br />
Dat brengt je alweer een stap dichterbij. Dusseh, knock yourself out. ;)
Pagina: 1