Package org.jwildfire.transform

Source Code of org.jwildfire.transform.AddBorderTransformer

/*
  JWildfire - an image and animation processor written in Java
  Copyright (C) 1995-2011 Andreas Maschke

  This is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser
  General Public License as published by the Free Software Foundation; either version 2.1 of the
  License, or (at your option) any later version.
  This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public License along with this software;
  if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jwildfire.transform;

import java.awt.Color;

import org.jwildfire.base.Property;
import org.jwildfire.base.PropertyMin;
import org.jwildfire.create.PlainImageCreator;
import org.jwildfire.image.SimpleImage;
import org.jwildfire.image.WFImage;
import org.jwildfire.swing.Buffer.BufferType;

public class AddBorderTransformer extends Transformer {
  @Property(description = "Size of the left border")
  @PropertyMin(0)
  private int leftSize = 24;

  @Property(description = "Size of the top border")
  @PropertyMin(0)
  private int topSize = 24;

  @Property(description = "Size of the right border")
  @PropertyMin(0)
  private int rightSize = 24;

  @Property(description = "Size of the bottom border")
  @PropertyMin(0)
  private int bottomSize = 24;

  @Property(description = "Border color")
  private Color color = new Color(240, 240, 222);

  @Override
  public boolean supports3DOutput() {
    return false;
  }

  @Override
  protected void performImageTransformation(WFImage pImg) {
    SimpleImage img = (SimpleImage) pImg;
    if ((leftSize > 0) || (topSize > 0) || (rightSize > 0) || (bottomSize > 0)) {
      PlainImageCreator creator = new PlainImageCreator();
      creator.setBgColor(color);
      SimpleImage bgImg = creator.createImage(pImg.getImageWidth() + leftSize + rightSize,
          pImg.getImageHeight() + topSize + bottomSize);
      ComposeTransformer cT = new ComposeTransformer();
      cT.setForegroundImage(img);
      cT.setLeft(leftSize);
      cT.setTop(topSize);
      cT.setGenlock(ComposeTransformer.Genlock.NONE);
      cT.setHAlign(ComposeTransformer.HAlignment.OFF);
      cT.setVAlign(ComposeTransformer.VAlignment.OFF);
      cT.transformImage(bgImg);
      img.setBufferedImage(bgImg.getBufferedImg(), bgImg.getImageWidth(), bgImg.getImageHeight());
    }
  }

  @Override
  public void initDefaultParams(WFImage pImg) {
    leftSize = 24;
    topSize = 24;
    rightSize = 24;
    bottomSize = 24;
    color = new Color(240, 240, 222);
  }

  @Override
  public boolean acceptsInputBufferType(BufferType pBufferType) {
    return pBufferType.equals(BufferType.IMAGE);
  }

  public int getLeftSize() {
    return leftSize;
  }

  public void setLeftSize(int leftSize) {
    this.leftSize = leftSize;
  }

  public int getTopSize() {
    return topSize;
  }

  public void setTopSize(int topSize) {
    this.topSize = topSize;
  }

  public int getRightSize() {
    return rightSize;
  }

  public void setRightSize(int rightSize) {
    this.rightSize = rightSize;
  }

  public int getBottomSize() {
    return bottomSize;
  }

  public void setBottomSize(int bottomSize) {
    this.bottomSize = bottomSize;
  }

  public Color getColor() {
    return color;
  }

  public void setColor(Color color) {
    this.color = color;
  }

}
TOP

Related Classes of org.jwildfire.transform.AddBorderTransformer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.