On 19 December 2013 09:29, ioannis latousakis <[email protected]> wrote:
> I have been trying to execute a command for imagemagick using apache exec,
> although I cannot get the command to construct properly. A well formatted SO
> question on this is here:
> http://stackoverflow.com/questions/20664301/executing-complex-command-with-commons-exec
>
> The command I need to execute is this:
>
> convert -size 140x80 xc:none -fill grey -gravity NorthWest -draw "text 10,10
> 'Copyright'" -gravity SouthEast -draw "text 5,15 'Copyright'" miff:- |
> composite -tile - /Users/latu/Pictures/desert.jpg
> /Users/latu/Pictures/desertCP.jpg
> This has been tested directly into terminal and works.
>
> With my code the following command is constructed:
>
> convert -size 140x80 xc:none -fill grey -gravity NorthWest -draw "text 10,10
> 'Copyright" -gravity SouthEast -draw "text 5,15 'Copyright" miff:- |
> composite -title - /Users/latu/Pictures/desert.jpg
> /Users/latu/Pictures/desertCP.jpg
> Notice that one quote is missing from “Copyright”. I am using [ .addArgument(
> "text 10,10 'Copyright’") ] to construct that part.
> Also part of this command is a pipe character, which I believe is not
> working correctly as well. [ .addArgument("miff:- |",false);]
Commons Exec does not support pipes or redirection directly.
You will need to tie the output from the first command to the input of
the second yourself.
>
> This is the output I get in my java application:
>
> convert: non-conforming drawing primitive definition `text 10,10 'Copyright'
> @ error/draw.c/DrawImage/3178.
> convert: non-conforming drawing primitive definition `text 5,15 'Copyright' @
> error/draw.c/DrawImage/3178.
> convert: unable to open image `- |': No such file or directory @
> error/blob.c/OpenBlob/2643.
> convert: unable to open image `composite': No such file or directory @
> error/blob.c/OpenBlob/2643.
> convert: unable to open image `composite': No such file or directory @
> error/blob.c/OpenBlob/2643.
> convert: no decode delegate for this image format `composite' @
> error/constitute.c/ReadImage/555.
> convert: unrecognized option `-title' @
> error/convert.c/ConvertImageCommand/2984.
> Any suggestions on what I need to change in my code for the above command to
> work?
See above.
> Complete code:
>
>
>
> import org.apache.commons.exec.*;
> import java.io.IOException;
>
> class Test {
>
> public static void main( String[] args )
> {
> applyWatermark(null,null);
> }
>
> public static void applyWatermark(String imagePaath,String watermark){
> String imagePath = "/Users/latu/Pictures/desert.jpg";
> String imagePath2 = "/Users/latu/Pictures/desertCP.jpg";
>
> CommandLine convert_cmd = new CommandLine("convert");
> convert_cmd.addArgument("-size")
> .addArgument("140x80")
> .addArgument("xc:none")
> .addArgument("-fill")
> .addArgument("grey")
> .addArgument("-gravity")
> .addArgument("NorthWest")
> .addArgument("-draw")
> .addArgument( "text 10,10 'Copyright'")
> .addArgument("-gravity")
> .addArgument("SouthEast")
> .addArgument("-draw")
> .addArgument("text 5,15 'Copyright'")
> .addArgument("miff:- |",false);
> // CommandLine wm_cmd = new CommandLine("composite");
> convert_cmd.addArgument("composite")
> .addArgument("-title")
> .addArgument("- "+imagePath,false)
> .addArgument(imagePath2);
>
>
> System.out.println(convert_cmd.toString());
>
> executeCommand(convert_cmd);
> // executeCommand(wm_cmd);
>
> /*
> http://www.imagemagick.org/Usage/annotating/#wmark_text
> correct command: convert -size 140x80 xc:none -fill grey -gravity
> NorthWest -draw "text 10,10 'Copyright'" -gravity SouthEast -draw "text 5,15
> 'Copyright'" miff:- | composite -tile - /Users/latu/Pictures/desert.jpg
> /Users/latu/Pictures/desertCP.jpg
> */
> }
> private static void executeCommand(CommandLine cmdLine){
> DefaultExecuteResultHandler resultHandler = new
> DefaultExecuteResultHandler();
>
> ExecuteWatchdog watchdog = new ExecuteWatchdog(60*1000);
> Executor executor = new DefaultExecutor();
> executor.setExitValue(1);
> executor.setWatchdog(watchdog);
> try
> {
> executor.execute(cmdLine, resultHandler);
> } catch (ExecuteException e)
> {
> e.printStackTrace();
> } catch (IOException e)
> {
> e.printStackTrace();
> }
> }
> }
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]