天天看点

在im4java中使用GraphicsMagick

1.定义操作和命令

GMOperation op = new GMOperation();

GraphicsMagickCmd cmd = new GraphicsMagickCmd("convert"); //convert说明你要做的是convert里面的操作

或ConvertCmd cmd = new ConvertCmd(true); //true说明你要用的是gm工具

2.缩放的参数说明

op.resize(int width) //它写的是width让我误以为是可以限制宽度的,其实不是,而是限制长宽不能超出width

op.resize(int width, int height) //其实就是相当于限制了一个框,图片等比例放在框里

 如果你想实现图片放在框里,但是是充满框的,即会出现拉伸,则调用

op.resize(width, height, '!'); 

3.输入和输出的图片格式

《1》你本地已经有图片了,你只需要告知原路径及变换后新生成的图片的路径就OK

op.addImage(srcPath);

op.addImage(newPath);

cmd.run(op);

op.addImage();

cmd.run(op,srcPath,srcPath);

这样写完图片处理模块就写完啦

《2》你的原图片只是一个输入流,你的输出图片只想要一个输出流

op.addImage("-");               // read from stdin

op.addImage("jpg:-");        //  write to stdout in jpg-format 注意这里的jpg可以根据你的图片格式而改变,但是必须要有,否则不知道你要以何格式生成转换后的图片

 Pipe pipeIn  = new Pipe(is, null);

 Pipe pipeOut = new Pipe(null, os);

cmd.setInputProvider(pipeIn);

cmd.setOutputConsumer(pipeOut);

这样你就可以实现你想要的图片输出流啦