ID: 50535
User updated by: bobkellock at gofast dot co dot uk
Reported By: bobkellock at gofast dot co dot uk
Status: Bogus
Bug Type: GD related
Operating System: Win XP SP2
PHP Version: 5.2.12
New Comment:
> Try the same thing without the Content-type header and I bet you > >
will see an error instead of a broken image.
You lost your bet! There is no error message and it now works exactly
as I want i.e. as previously but without the spurious "Image" in a
rectangle.
The header line was a lefover fom when I was learning how to use the GD
calls and wanted to display the original jpeg; without it what was being
displayed was textural gobbledegook.
<?php
header('Content-type: image/jpeg');
$img = imagecreatefromjpeg('xxxx.jpg');
imagejpeg($img);
?>
The above displays the image correctly in Opera 10.10, FF 3.5.6, Safari
for Windows 4.0.3, Chrome and IE8.
If I omit the imagejpeg($img) line:
Opera (my default browser) displays the rectangle as previously
described.
FF displays the URL of the page.
Chrome and Safari just generate a blank screen.
IE8 displays a red X in a box in the top left of the screen.
Seemingly there is no error but, despite that, it appears that
imagecreatefromjpeg is returning something to the browser which causes
some of them to generate a spurious display.
Previous Comments:
------------------------------------------------------------------------
[2009-12-20 21:08:31] [email protected]
Some browsers display the word Image when they can't correct display an
image, such as when there is an error :)
------------------------------------------------------------------------
[2009-12-20 13:14:41] [email protected]
Try the same thing without the Content-type header and I bet you will
see an error instead of a broken image. That error is why it isn't
working. There is no bug here. Those GD functions have worked in PHP
for 10+ years assuming you have GD support available with JPEG support
compiled in.
------------------------------------------------------------------------
[2009-12-20 10:23:16] bobkellock at gofast dot co dot uk
I object strongly to your comment "This bug report makes no sense".
Just try:
<?php
header('Content-type: image/jpeg');
$img = imagecreatefromjpeg('xxx.jpg');
?>
which generates the spurious display where xxx.jpg is known to be a
valid jpeg.
Please note that this is using v5.2.10. I had to give an incorrect
version number because the bug reporter would not allow me to submit the
report with that number in the Version box and I have no control over
the version available from my web host.
------------------------------------------------------------------------
[2009-12-20 07:03:10] [email protected]
Are you sure your image isn't actually broken? Where would the string,
"Image" come from?
And why do you think you can emit a header after you have sent the
image?
This bug report makes no sense, sorry.
------------------------------------------------------------------------
[2009-12-20 01:03:11] bobkellock at gofast dot co dot uk
Description:
------------
PHP version is actually 5.2.10 which is what is run on the server at
One.com but is due to be upgraded to 5.3 on 2010-01-04.
imagecreatefromjpeg and other imagecreatefromxxx functions put up
"Image" in a small rectangle on the centre of the screen.
This is unsightly in my application which simply creates the image and
overlays it with some text using imagestring followed by writing the
overlaid image to a file. i.e. the original or overlaid image is never
written to the screen.
Bob Kellock
Reproduce code:
---------------
header('Content-Type: image/jpg');
$serial = "CL1949F"; // normally passed as a session variable
$img = imagecreatefromjpeg('blankorder.jpg');
$textcolour = imagecolorallocate($img, 0, 0, 0);
$font = imageloadfont('Arial24.gdf');
imagestring($img, $font, 535, 312, $serial, $textcolour);
imagejpeg($img,'orderform.jpg');
imagedestroy($img);
header('refresh: 0; url=stamped.html'); // redirect to new page
Expected result:
----------------
Creation of overlaid file - which works OK.
Screen should be blank.
Actual result:
--------------
"Image" in a small rectangle is displayed
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=50535&edit=1