| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Menandr 05.10.2015 00:31
Решение для img.p в связке с nConvert. Если кто напишет по аналогии для imageMagik, будет совсем круто.######################################################
@canvas[sFileSrc;sFileDest;sCanvasWidth;sCanvasHeight;hParams][tColor;fResult]
$hParams[^self._prepareParams[$hParams]]
^if(def $hParams.sBGColor){
$tColor[^hParams.sBGColor.split[,;lh]]
^self._checkColor[canvas;$tColor.0]
^self._checkColor[canvas;$tColor.1]
^self._checkColor[canvas;$tColor.2]
}
^if(!def $sCanvasWidth || !def $sCanvasHeight){
^throw[$sClassName;canvas;Canvas width and height MUST be specified]
}
^hParams.add[
^self._getFiles[canvas;$sFileSrc;$sFileDest;$hParams.sFormat;$hParams]
$.iR($tColor.0)
$.iG($tColor.1)
$.iB($tColor.2)
^if(!def $hParams.sPosition){
$.sPosition[center]
}
$.sCanvasWidth[$sCanvasWidth]
$.sCanvasHeight[$sCanvasHeight]
]
$fResult[^self._createDirAndExec[canvas;$hParams]]
$result($fResult.status)
######################################################В nconvert.p в @_exec[] ...
^case[canvas]{^file::exec[$hScript.$sAction;$hOptions;-o;$hParams.sOutput;-canvas;$hParams.sCanvasWidth;$hParams.sCanvasHeight;$hParams.sPosition;-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]}
...Параметры ^oImg.canvas[$sFileSrc;$sFileDest;$sCanvasWidth;$sCanvasHeight;$hParams] Здесь $sCanvasWidth - ширина области (в px или %) $sCanvasHeight - высота области (в px или %) $hParams - хэш со следующими полями $.sBGColor - цвет фона (формат "R,G,B") $.sPosition - позиция исходного изображения top-left, left-top : top-left top-center, center-top : top-center top-right, right-top : top-right center-left, left-center : center-left center : center (по умолчанию) center-right, right-center : center-right bottom-left, left-bottom : bottom-left bottom-center, center-bottom : bottom-center bottom-right, right-bottom : bottom-right $.sFormat - выходной формат $.bRemoveMeta - флаг удаления метаданных $.iQuality - качество для jpg и png $.iColors - кол-во цветов (256, 216, 128, 64, 32, 16 или 8)Может быть, кому-нибудь пригодится.