[magick-users] Dot-Dash lines
Erik Aronesty
erik at q32.com
Sun Mar 16 23:57:13 PDT 2008
according to the documentaiton you should use
dash-pattern=>[5,5]
to yield a dotted line
but reading the source-code,it's actually
stroke-dasharray=>[5,5]
unfortunately, when I use this, it caused a segmentation fault
from looking at the source, it seems that the "av_len" macro is
misused. the macro itself returns the "highest index into an array"
not the actual length of the array
(http://perldoc.perl.org/perlapi.html) (poorly named). this,
however should be easily fixed by using
stroke-dasharray=>[5,5,5]
which would then ignore the last element.... but this, too, segfaults
on my machine
the actual error occurs during "DestroyDrawInfo", so i'm assuming some
sort of buffer gets overrun, however it doesn't look (to me) like the
error is in PerlMagick, which, although misusing av_len, isn't
scribbling on an index higher than it allocated (av_len +1)
i don't think valgrind would help because of imagemagick's internal
memory management system would obfuscate the source of the actual
memory overwrite, but maybe it would...
- erik
*** glibc detected *** /usr/bin/perl: free(): invalid next size
(fast): 0x095b59f8 ***
======= Backtrace: =========
/lib/libc.so.6[0xa94a96]
/lib/libc.so.6(cfree+0x90)[0xa97fb0]
/usr/lib/libMagick.so.10(RelinquishMagickMemory+0x21)[0x5249e1]
/usr/lib/libMagick.so.10(DestroyDrawInfo+0x158)[0x4d8e78]
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Image/Magick/Magick.so(XS_Image__Magick_Mogrify+0x277e)[0x13115e]
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so(Perl_pp_entersub+0x40d)[0x3b43dd]
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so(Perl_runops_standard+0x1f)[0x3ad83f]
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so(perl_run+0x2ee)[0x35310e]
/usr/bin/perl(main+0x13e)[0x804921e]
/lib/libc.so.6(__libc_start_main+0xdc)[0xa43dec]
/usr/bin/perl[0x8049021]
On Sun, Mar 16, 2008 at 1:43 PM, <rhubarbpie at poetworld.net> wrote:
>
> I'm drawing solid lines using the following:
>
> $image->Draw(primitive=>line,
> stroke=>black,
> strokewidth=>5,
> points=>"$StartX,$StartY $StopX,$StopY");
>
>
> However, I'd like to replace the solid line with a "dot-dash" line. By
> that I mean a line of dots and dashes, preferably starting and ending
> with a dot. For instance, "dot dash dot dash dot."
> I'd also like to determine the dot size relative to the dash.
>
> Is this possible?
> _______________________________________________
> Magick-users mailing list
> Magick-users at imagemagick.org
> http://studio.imagemagick.org/mailman/listinfo/magick-users
>
More information about the Magick-users
mailing list