Prev: - problems with redirects
Next: Dear Lazy Web: Pseudo Randomisation Strategies on Listing Websites
From: Lorenzo Marussi on 19 Aug 2010 18:44 hello list, I'm trying to manage a image resouce inside a method, but unsuccessfully... In detail, that's some code snippets: the class and the method: class.php class canvas{ function makeImage($imageWidth = 850){ $im = imagecreate(110, 20) or die("Cannot Initialize new GD image stream"); $background_color = imagecolorallocate($im, 0, 0, 0); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, "A Simple Text String", $text_color); return $im; } } .... than my test.php file: header("Content-type: image/png"); include_once("class.php"); $c = new canvas(); imagepng($c->makeImage()); the result in the browser isn't the image itself, but an error that sounds like: (I traslate the message from italian): "Image can't be displayed because contains some errors" but... if I comment out the "header" line, I get this: ‰PNG ��� IHDR���n������V,š���PLTE���é[an÷���fIDAT•c` `fxÄÀÃ`Ç ÀçÀä²41ƒ‚€˜Ë–Ý'Àq²@੤;{á0— œi ....sounds like a png image, isn't it? but It doesn't :-/ The code in the method is very simple, is the same of the php manual page of "imagecreate" function, and I think the resource is correctly managed, 'cause if I write this: $c = new palinsestoCanvas(3); imagepng(null); I get: "Warning: imagepng(): supplied argument is not a valid Image resource" ... so I think $c->makeImage()) returns successfully the resource.. but I still didnt see my image.. Any help is appreciated, thanks Lorenzo
From: Ashley Sheridan on 19 Aug 2010 19:00 On Fri, 2010-08-20 at 00:44 +0200, Lorenzo Marussi wrote: > hello list, > > I'm trying to manage a image resouce inside a method, but > unsuccessfully... > > In detail, that's some code snippets: > > the class and the method: > > class.php > > class canvas{ > > function makeImage($imageWidth = 850){ > > $im = imagecreate(110, 20) or die("Cannot Initialize new GD > image stream"); > $background_color = imagecolorallocate($im, 0, 0, 0); > $text_color = imagecolorallocate($im, 233, 14, 91); > imagestring($im, 1, 5, 5, "A Simple Text String", $text_color); > return $im; > } > > } > > ... than my test.php file: > > header("Content-type: image/png"); > include_once("class.php"); > $c = new canvas(); > imagepng($c->makeImage()); > > the result in the browser isn't the image itself, but an error that > sounds like: (I traslate the message from italian): > "Image can't be displayed because contains some errors" > > but... if I comment out the "header" line, I get this: > > â°PNG ��� IHDR���n������V,š���PLTE���é[an÷���fIDATâ¢c` `fxÃÃÃ`à > ÃçÃä²41Æââ¬ËÃâÃâÃq²@à ©¤;{á0â Åi > > ...sounds like a png image, isn't it? but It doesn't :-/ > > The code in the method is very simple, is the same of the php manual > page of "imagecreate" function, and I think the resource is correctly > managed, 'cause if I write this: > > $c = new palinsestoCanvas(3); > imagepng(null); > > I get: "Warning: imagepng(): supplied argument is not a valid Image > resource" > > .. so I think $c->makeImage()) returns successfully the resource.. but I > still didnt see my image.. > > > Any help is appreciated, thanks > > Lorenzo > > > > It looks like you might be outputting some extra content to the browser, such as newlines or other content. Use the second parameter of imagepng() to write the image to a file and compare the size of that with the bytes sent to the browser (you should be able to get this from the browsers properties dialogue) >From the looks of what you've pasted, the extra content is appearing right after the image data, so perhaps an exit; call right after imagepng() and seeing if that solves the problem. Thanks, Ash http://www.ashleysheridan.co.uk
|
Pages: 1 Prev: - problems with redirects Next: Dear Lazy Web: Pseudo Randomisation Strategies on Listing Websites |