繁体   English   中英

im4Java-调整大小的动态操作

[英]im4Java - Dynamic Operation for Resize

我正在使用im4Java库调整图像大小。 我看到您可以设置一个模板操作,该模板操作具有用于输入和输出文件的占位符。 我知道您可以初始设置操作的调整尺寸,但是可以设置调整尺寸也是动态的操作吗?

这是我当前的代码:

   IMOperation op = new IMOperation();
   op.addImage();
   op.resize(500, 500); // I would like to make this dynamic
   op.quality(70d);
   op.addImage();

您可以实现DynamicOperation接口并将其添加到您的操作堆栈中。

示例用例:

需要将给定图像的大小调整为图像大小集中的所有其他图像大小。

例如:
Set1:[16x16、32x32、64x64],
Set2:[12x12、24x24、48x48]。

如果输入图像的大小为32x32,则需要将其调整为16x16、64x64。

码:

...

DynamicResizeOperation drOp = new DynamicResizeOperation();
IMOperation op = new IMOperation();
op.addImage(inputImagePath);
op.addDynamicOperation(drOp);
op.addImage(); //place holder for out put image

...

for (IMSize imSize : resizeList) {
  //set the dynamic size to resize
  drOp.setSize(imSize.getWidth(), imSize.getHeight());

...


class DynamicResizeOperation implements DynamicOperation {

    private int height;
    private int width;

    public DynamicResizeOperation() {}

    public void setSize(int width, int height) {
        this.height = height;
        this.width = width;
    }

    @Override
    public Operation resolveOperation(Object... pImages) throws IM4JavaException {

        //return the resize operation if and only if both height and width are non zero positive values
        if (height > 0 && width > 0) {
            IMOperation op = new IMOperation();
            op.resize(width, height, "!");
            return op; 
        }
        return null;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM