001/** 002 * 003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. 004 * 005 * This library is free software; you can redistribute it and/or 006 * modify it under the terms of the GNU Lesser General Public 007 * License as published by the Free Software Foundation; either 008 * version 2.1 of the License, or (at your option) any later version. 009 * 010 * This library is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 013 * Lesser General Public License for more details. 014 * 015 * You should have received a copy of the GNU Lesser General Public 016 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 017 * 018 **/ 019package lucee.runtime.functions.image; 020 021import lucee.runtime.PageContext; 022import lucee.runtime.exp.FunctionException; 023import lucee.runtime.exp.PageException; 024import lucee.runtime.img.Image; 025 026public class ImageCopy { 027 028 public static Object call(PageContext pc, Object name, double x, double y, double width, double height) throws PageException { 029 //if(name instanceof String) name=pc.getVariable(Caster.toString(name)); 030 Image img = Image.toImage(pc,name); 031 032 if (width < 0) 033 throw new FunctionException(pc,"ImageCopy",3,"width","width must contain a none negative value"); 034 if (height < 0) 035 throw new FunctionException(pc,"ImageCopy",4,"height","width must contain a none negative value"); 036 037 return img.copy((float)x, (float)y, (float)width, (float)height); 038 } 039 040 public static Object call(PageContext pc, Object name, double x, double y, double width, double height,double dx) throws PageException { 041 throw new FunctionException(pc,"ImageCopy",7,"dy","when you define dx, you have also to define dy"); 042 } 043 044 public static Object call(PageContext pc, Object name, double x, double y, double width, double height, double dx, double dy) throws PageException { 045 if(dx==-999 && dy==-999){// -999 == default value for named argument 046 return call(pc, name, x, y, width, height); 047 } 048 if(dx==-999){// -999 == default value for named argument 049 throw new FunctionException(pc,"ImageCopy",6,"dx","when you define dy, you have also to define dx"); 050 } 051 if(dy==-999){// -999 == default value for named argument 052 throw new FunctionException(pc,"ImageCopy",7,"dy","when you define dx, you have also to define dy"); 053 } 054 055 056 //if(name instanceof String) name=pc.getVariable(Caster.toString(name)); 057 Image img = Image.toImage(pc,name); 058 059 if (width < 0) 060 throw new FunctionException(pc,"ImageCopy",3,"width","width must contain a none negative value"); 061 if (height < 0) 062 throw new FunctionException(pc,"ImageCopy",4,"height","width must contain a none negative value"); 063 064 return img.copy((float)x, (float)y, (float)width, (float)height, (float)dx, (float)dy); 065 //return null; 066 } 067}