Edit report at http://bugs.php.net/bug.php?id=53640&edit=1

 ID:                 53640
 User updated by:    2ms67q83o001 at sneakemail dot com
 Reported by:        2ms67q83o001 at sneakemail dot com
 Summary:            makes file but text is not there, nor some of border
 Status:             Open
 Type:               Bug
 Package:            GD related
 Operating System:   XP
 PHP Version:        5.2.11
 Block user comment: N
 Private report:     N

 New Comment:

I solved it! There are 2 huge errors on the page that describes the
imagexbm() function and give examples. No one points out that the width
MUST be evenly divisible by 8 or you get a mess. The example is 120 wide
which just accidentally is evenly divisible by 8, which will happen only
1 in 8 times, randomly. This issue is dealt with in the code below.
Also, since xbm is not color but black and white, the example should not
be showing color anything, but it does. The code below is for black and
white, and it works great. If there was a way, I'd erase the other stuff
I wrote in this bug and put this comment here as a note on the
imagexbm() page in PHP.NET!



<?php



header("Content-type: image/xbm");

$mytext = $_GET['mytext'];

$fontsize  = 5;

$wide  = imagefontwidth($fontsize) * strlen($mytext) + 20;

$temp1=$wide/8;

$temp2=round($wide/8);

if ($temp1<>$temp2){$wide=($temp2 * 8) + 8;}

$high = imagefontheight($fontsize) + 20;

$picture = imagecreatetruecolor($wide,$high);

$white = imagecolorallocate($picture,255,255,255);

imagefill($picture,0,0,$white);

$black=imagecolorallocate($picture, 0, 0, 0);

imageline($picture, 0, 0, 0, $high, $black);

imageline($picture, 0, 0, $wide, 0, $black);

imageline($picture, $wide-1, 0, $wide-1, $high-1, $black);

imageline($picture, 0, $high-1, $wide-1, $high-1, $black);

imagestring($picture,$fontsize,10,10,$mytext,$black);

imagexbm($picture); //This function is only available if PHP is compiled
with the bundled version of the GD library

imagexbm($picture,"mytextpic.xbm");

imagedestroy($picture);



?>


Previous Comments:
------------------------------------------------------------------------
[2011-01-04 02:40:23] 2ms67q83o001 at sneakemail dot com

Description:

------------

makes file but text is not there, nor some of border



my nearly identical codes work perfect for imagejpeg(), imagegif() and

 imagepng() and image wbmp()



why not imagexbm()????????????????



Test script:

---------------

<?php



header("Content-type: image/xbm");

$mytext = $_GET['mytext'];

$fontsize  = 5;

$wide  = imagefontwidth($fontsize) * strlen($mytext) + 20;

$high = imagefontheight($fontsize) + 20;

$picture = imagecreatetruecolor($wide,$high);

$gray = imagecolorallocate($picture,223,223,223);

$blue = imagecolorallocate($picture,0,0,255);

imagefill($picture,0,0,$gray);

$black=imagecolorallocate($picture, 0, 0, 0);

imageline($picture, 0, 0, 0, $high, $black);

imageline($picture, 0, 0, $wide, 0, $black);

imageline($picture, $wide-1, 0, $wide-1, $high-1, $black);

imageline($picture, 0, $high-1, $wide-1, $high-1, $black);

imagestring($picture,$fontsize,10,10,$mytext,$blue);

imagexbm($picture); //This function is only available if PHP is compiled
with the bundled version of the GD library--is that the issue?

imagexbm($picture,"mytextpic.xbm");

imagedestroy($picture);



?>



Expected result:

----------------

bordered xbm image with text in it



Actual result:

--------------

makes file but text is not there, nor some of border either

------------------------------------------------------------------------
[2011-01-03 04:30:06] 2ms67q83o001 at sneakemail dot com

Description:
------------
makes file but text is not there, nor border



my nearly identical codes work perfect for imagejpeg(), imagegif() and

 imagepng()



why not imagexbm()????????????????



the imagewbmp() function has the same bug!!!

Test script:
---------------
<?php



header("Content-type: image/xbm");

$mytext = $_GET['mytext'];

$fontsize  = 5;

$wide  = imagefontwidth($fontsize) * strlen($mytext) + 20;

$high = imagefontheight($fontsize) + 20;

$picture = imagecreatetruecolor($wide,$high);

$gray = imagecolorallocate($picture,223,223,223);

$blue = imagecolorallocate($picture,0,0,255);

imagefill($picture,0,0,$gray);

$black=imagecolorallocate($picture, 0, 0, 0);

imageline($picture, 0, 0, 0, $high, $black);

imageline($picture, 0, 0, $wide, 0, $black);

imageline($picture, $wide-1, 0, $wide-1, $high-1, $black);

imageline($picture, 0, $high-1, $wide-1, $high-1, $black);

imagestring($picture,$fontsize,10,10,$mytext,$blue);

imagexbm($picture); //This function is only available if PHP is compiled
with the bundled version of the GD library--is that the issue?

imagexbm($picture,mytextpic.xbm);

imagedestroy($picture);

rename("mytextpicxbm", "mytextpic.xbm"); //fixes bug in which image
functions leave out dot



?>

Expected result:
----------------
bordered xbm image with text in it

Actual result:
--------------
makes file but text is not there, nor border either


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=53640&edit=1

Reply via email to