From: tom at gksystems dot com
Operating system: all
PHP version: 4.3.2
PHP Bug Type: GD related
Bug description: imagerotate fail to copy entire source image
Description:
------------
When rotating an image which is taller-than-wide through an angle > 225
and <= 315 degrees, only a square portion of the image is copied. The
remainder is black.
ext/libgd/gd.c has a bug in gdImageRotate270:
for (uY = 0; uY<src->sx; uY++) {
for (uX = 0; uX<src->sx; uX++) {
uY and uX both have a range of src->sx, so only a square region is copied.
The first line should be:
for (uY = 0; uY<src->sy; uY++) {
Reproduce code:
---------------
<script language="PHP">
// June 12, 2003 Tom Robinson
// Display a 30x50 yellow rectangle, rotated 270 degrees CCW.
$im = ImageCreateTrueColor(30,50);
imagefill($im,0,0,16777215-255);
$im = imagerotate($im,270,255);
header("Content-type: image/png");
imagepng($im);
</script>
Expected result:
----------------
See a yellow rectangle.
Actual result:
--------------
See a rectangle with a yellow square and the rest is black.
--
Edit bug report at http://bugs.php.net/?id=24155&edit=1
--
Try a CVS snapshot: http://bugs.php.net/fix.php?id=24155&r=trysnapshot
Fixed in CVS: http://bugs.php.net/fix.php?id=24155&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=24155&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=24155&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=24155&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=24155&r=support
Expected behavior: http://bugs.php.net/fix.php?id=24155&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=24155&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=24155&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=24155&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=24155&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=24155&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=24155&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=24155&r=gnused