
org.imajine.image.jai.CreateJAIOp Maven / Gradle / Ivy
The newest version!
/***********************************************************************************************************************
*
* Mistral - open source imaging engine
* Copyright (C) 2003-2012 by Tidalwave s.a.s.
*
***********************************************************************************************************************
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
***********************************************************************************************************************
*
* WWW: http://mistral.imajine.org
* SCM: https://bitbucket.org/tidalwave/mistral-src
*
**********************************************************************************************************************/
package org.imajine.image.jai;
import javax.media.jai.PlanarImage;
import javax.media.jai.operator.ConstantDescriptor;
import org.imajine.image.EditableImage;
import org.imajine.image.op.OperationImplementation;
import org.imajine.image.op.CreateOp;
import lombok.extern.slf4j.Slf4j;
/***********************************************************************************************************************
*
* @author Emmanuele Sordini
* @author Fabrizio Giudici
* @version $Id: CreateJAIOp.java,v 20e39e8c9fac 2012/02/02 16:35:02 fabrizio $
*
**********************************************************************************************************************/
@Slf4j
public class CreateJAIOp extends OperationImplementation
{
@Override
protected PlanarImage execute (final CreateOp operation, final EditableImage image, final PlanarImage planarImage)
{
final double[] filler = operation.getFiller();
Number[] dims = null;
switch (operation.getDataType())
{
case BYTE:
dims = new Byte[filler.length];
for (int i = 0; i < filler.length; i++)
{
dims[i] = (byte)filler[i];
}
break;
case SHORT:
dims = new Short[filler.length];
for (int i = 0; i < filler.length; i++)
{
dims[i] = (short)filler[i];
}
break;
case UNSIGNED_SHORT:
dims = new Short[filler.length];
for (int i = 0; i < filler.length; i++)
{
dims[i] = (short)filler[i];
}
break;
case INT:
dims = new Integer[filler.length];
for (int i = 0; i < filler.length; i++)
{
dims[i] = (int)filler[i];
}
break;
case FLOAT:
dims = new Float[filler.length];
for (int i = 0; i < filler.length; i++)
{
dims[i] = (float)filler[i];
}
break;
case DOUBLE:
dims = new Double[filler.length];
for (int i = 0; i < filler.length; i++)
{
dims[i] = (double)filler[i];
}
break;
default:
throw new IllegalArgumentException("Unsupported dataType: " + operation.getDataType());
}
final PlanarImage result = ConstantDescriptor.create((float)operation.getWidth(), (float)operation.getHeight(), dims, null).createInstance();
JAIUtils.logImage(log, ">>>> CreateJAIOp returning", result);
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy