You don't show us your surrounding Perl code, but I assume you're using something like the following:
#!/usr/bin/perl -w use strict; my $thumbNail1 = 'test_1.jpg'; my $thumbNail2 = 'test_2.jpg'; my $cmd = "convert $thumbNail1 \( +clone -threshold -1 -virtual-pixel +black -spread 10 -blur 0x3 -threshold 50% -spread 1 -blur 0x.7 \) +ma +tte -compose Copy_Opacity -composite $thumbNail2"; system($cmd) == 0 or die "Couldn't launch [$cmd]: $!/$?";
I don't have convert ready to try this, but I think you should print out $cmd to see that it is what you expect, and you should also make sure that you properly convert the shell quoting - parentheses are special for the shell and hence need to be quoted, while they are not necessary for Perl and maybe don't need to be quoted, depending on whether Perl decides to involve a shell in your system call or not (I presume it decides against it). In any case, you could try the list form of system, to make sure there is no shell involved that might mess with your command line:
my @cmd = ( 'convert, $thumbNail1 qw[( +clone -threshold -1 -virtual-pixel black -spread 10 -blur 0x3 -threshold 50% -spread 1 -blur 0x.7 ) +matte -compose Copy_Opacity -composite ], $thumbNail2 ); system(@cmd) == 0 or die "Couldn't launch [@cmd]: $!/$?";
In reply to Re: system call to ImageMagick with many parameters fails
by Corion
in thread system call to ImageMagick with many parameters fails
by august
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |