Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > ImageSetThickness()


Автор: Irokez 17.4.2005, 13:27
У меня странности работы GD с ImageSetThickness()
в мануале написано:
Цитата

imagesetthickness() sets the thickness of the lines drawn when drawing rectangles, polygons, ellipses etc. etc. to thickness pixels.

т.е. если я вызываю эту функцию до того как нарисовать эллипс, то нарисованный эллипс должен быть такой толщины, которую я передал этой функции
возьмем код:
Код

<?php
$CONF['width']=250;
$CONF['height']=250;
$CONF['big-circle-width']=100;
$CONF['big-circle-height']=100;
$CONF['big-circle-thick']=3;

$image = ImageCreateTrueColor($CONF['width'], $CONF['height']);

/*
    define colors
*/
$color['bg'] = ImageColorAllocate($image, 255, 255, 255);
$color['big-circle'] = ImageColorAllocate($image, 0, 0, 0);

$center['x'] = round($CONF['width'] / 2);
$center['y'] = round($CONF['height'] / 2);
/*
    0) draw backround
    1) draw big cirlce
*/
ImageFilledRectangle($image, 0, 0, $CONF['width'], $CONF['height'], $color['bg']);
ImageSetThickness($image, $CONF['big-circle-thick']);
ImageEllipse($image, 50, 150, $CONF['big-circle-width'], $CONF['big-circle-height'], $color['big-circle']);
ImageArc($image, 50, 50, $CONF['big-circle-width'], $CONF['big-circle-height'], 0, 359, $color['big-circle']);
ImageArc($image, 150, 150, $CONF['big-circle-width'], $CONF['big-circle-height'], 0, 360, $color['big-circle']);

header("Content-Type: image/gif");
ImageGIF($image);
?>

странное дело, первый эллипс нарисован функцией - ImageArc от 0гр до 359гр, у него толщина - 3пкс (как и должно быть), второй нарисован тоже ImageArc от 0гр до 360гр, но у него толщине - 1пкс (почему??), третий нарисован ImageEllipse - который тоже забил на ImageSetThickness.
глюк GD?

Автор: Joes 17.4.2005, 14:21
20 минут бился, так ничего и не получилось...
Причем, работает эта функция только с
Код

ImageArc($image, 50, 50, $CONF['big-circle-width'], $CONF['big-circle-height'], 0, 359, $color['big-circle']);
, причем от 0 до 359...
Может дело в ImageEllipse - не имеет возможности регулировть толщину...
Так что не парься, делай с ImageArc - все работает, хоть сто эллипсов нарисуй smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)