| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
G_Z 07.03.2008 03:15 / 05.08.2008 06:42
@_exec[sAction;hParams][sTempFileName;sDir;sClearDir;sTempFile;hTmp]
^if($hParams.sFormat ne "gif"){
^hParams.delete[iColors]
}
$result[^switch[$sAction]{
^case[info]{^file::exec[$sScript;;-info;$hParams.sInput]}
^case[convert]{^file::exec[$sScript;;-o;$hParams.sOutput;^if(^hParams.bRemoveMeta.int(0)){-rmeta}{-quiet};-out;$hParams.sFormat;-q;$hParams.iQuality;^if($hParams.iColors){-colors}{-quiet};^if($hParams.iColors){$hParams.iColors}{^if(^hParams.bTrueColors.bool(false)){-truecolors}{-quiet}};$hParams.sInput]}
^case[rotateJPG]{^file::exec[$sScript;;-jpegtrans;$hParams.sAngle;$hParams.sInput]}
^case[rotate]{^file::exec[$sScript;;-o;$hParams.sOutput;-rotate;$hParams.iAngle;-bgcolor;$hParams.iR;$hParams.iG;$hParams.iB;^if($hParams.bRemoveMeta){-rmeta}{-quiet};-out;$hParams.sFormat;-q;$hParams.iQuality;^if($hParams.iColors){-colors}{-quiet};^if($hParams.iColors){$hParams.iColors}{-quiet};$hParams.sInput]}
^case[crop]{^file::exec[$sScript;;-o;$hParams.sOutput;-crop;$hParams.iX;$hParams.iY;$hParams.iCropWidth;$hParams.iCropHeight;^if($hParams.bRemoveMeta){-rmeta}{-quiet};-out;$hParams.sFormat;-q;$hParams.iQuality;^if($hParams.iColors){-colors}{-quiet};^if($hParams.iColors){$hParams.iColors}{-quiet};$hParams.sInput]}
^case[resize]{^file::exec[$sScript;;-o;$hParams.sOutput;-resize;$hParams.sWidth;$hParams.sHeight;^if($hParams.bKeepRatio){-ratio}{-quiet};^if(def $hParams.sFlag){-rflag}{-quiet};^if(def $hParams.sFlag){$hParams.sFlag}{-quiet};-out;$hParams.sFormat;-q;$hParams.iQuality;^if($hParams.iColors){-colors}{-quiet};^if($hParams.iColors){$hParams.iColors}{-quiet};^if($hParams.bRemoveMeta){-rmeta}{-quiet};-rtype;$hParams.sRType;$hParams.sInput]}
^case[watermark]{
^if($hParams.sFormat ne "gif" && $hParams.sFormat ne "png"){
^file::exec[$sScript;;-o;$hParams.sOutput;-wmfile;$hParams.sWMFile;-wmpos;^hParams.iX.int(0);^hParams.iY.int(0);^if(def $hParams.sPosition){-wmflag}{-quiet};^if(def $hParams.sPosition){$hParams.sPosition}{-quiet};^if($hParams.bRemoveMeta){-rmeta}{-quiet};-out;$hParams.sFormat;-q;$hParams.iQuality;$hParams.sInput]
}{
$sTempFileName[^math:uid64[].bmp]
$sTempFileName[^sTempFileName.lower[]]
$sDir[^file:dirname[$hParams.sOutput]]
$sClearDir[^sDir.mid(^self.sDocRoot.length[])]
$sTempFile[$sDir/$sTempFileName]
$hTmp[^self._exec[convert][
$.sInput[$hParams.sInput]
$.sOutput[$sTempFile]
$.sFormat[bmp]
$.bTrueColors(true)
$.iQuality(100)
]]
$hTmp[^self._exec[watermark][
$.sInput[$sTempFile]
$.sOutput[$sTempFile]
$.sFormat[bmp]
$.sWMFile[$hParams.sWMFile]
$.sPosition[$hParams.sPosition]
$.iQuality(100)
]]
^self._exec[convert][
$.sOutput[$hParams.sOutput]
$.sInput[$sTempFile]
$.sFormat[$hParams.sFormat]
^if($hParams.sFormat ne "png"){$.iColors(^hParams.iColors.int(256))}
$.iQuality(^hParams.iQuality.int(100))
]
^file:delete[$sClearDir/$sTempFileName]
}
}
^case[DEFAULT]{^throw[$sClassName;;Action '$sAction' not implemented yet]}
}]Как-то так.