I've got this problem using ImageMagick 6.3.3 on Slackware Linux.
This C++ code should produce two figures, identical apart from the type of
line join. The shape using MiterJoin is three sides of a square, as it
should be. The RoundJoin shape has an extra line from the square's top right
corner to the bottom left. I can work round this problem by tacking a
PathMoveto onto the end of the path (as in the commented out line), although
if I do that, the endcaps become round, even if I specify something else.
#include <Magick++.h>
#include <list>
using namespace std;
using namespace Magick;
void shape( Image& I, int x, int y, LineJoin J )
{
list< VPath > path;
list< Drawable > draw_list;
path.push_back( PathMovetoAbs( Coordinate( x, y ) ) );
path.push_back( PathLinetoRel( Coordinate( 0, 100 ) ) );
path.push_back( PathLinetoRel( Coordinate( 100, 0 ) ) );
path.push_back( PathLinetoRel( Coordinate( 0, -100 ) ) );
//path.push_back( PathMovetoRel( Coordinate( 0, 0 ) ) );
draw_list.push_back( DrawableFillColor( Color() ) );
draw_list.push_back( DrawableStrokeWidth( 10 ) );
draw_list.push_back( DrawableStrokeColor( Color( "black" ) ) );
draw_list.push_back( DrawableStrokeLineJoin( J ) );
draw_list.push_back( DrawablePath( path ) );
I.draw( draw_list );
return;
}
int main()
{
Image I( Geometry( 250, 150 ),
Color( "white" ) );
shape( I, 10, 25, RoundJoin );
shape( I, 140, 25, MiterJoin );
I.write( "test.png" );
return 0;
}
--
Kevin Anthoney
[EMAIL PROTECTED]
_______________________________________________
Magick-bugs mailing list
[email protected]
http://studio.imagemagick.org/mailman/listinfo/magick-bugs