Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
max_rip 13.04.2012 20:38 / 13.04.2012 20:42
У меня более сложный вариант уменьшения фото@upploadFile[data;notWatermark] $name[${img_url}${data.galleryId}/^file:justname[$data.fileName.name].jpg] $prew[${img_url}${data.galleryId}/prew_^file:justname[$data.fileName.name].jpg] ^if(-f $name){ ^self.addError[такой файл уже существует] $result(-1) }{ ^data.fileName.save[binary;${name}-tmp] $oImg[^NConvert::create[ # Путь, где лежит nconvert $.sScriptPath[/cgi-bin/bin] # Имя самого файла nconvert $.sScriptName[nconvert] $.iColors[256] $.iQuality[80] $.bKeepRatio[1] $.bRemoveMeta[1] ]] ^oImg.resize[${name}-tmp;${name}-res;;$bH;[$.sFormat[jpg]]] $imgInfo[^oImg.info[${name}-res]] ^if(def $notWatermark){ ^file:move[${name}-res;${name}] }{ ^oImg.watermark[${name}-res;${name};/images/watermark.png;[$.sFormat[jpg]$.sPosition[center]]] } ^file:delete[${name}-tmp] $rationImg($imgInfo.iWidth/$imgInfo.iHeight) ^if($sW/$sH > $rationImg){ $newH(^math:round($sW/$rationImg)) $newW($sW) }{ $newW(^math:round($sH*$rationImg)) $newH($sH) } $x(^math:round(($newW/2)-($sW/2))) $y(^math:round(($newH/2)-($sH/2))) ^oImg.resize[${name}-res;${name}-tmp;$newW;$newH;[$.sFormat[jpg]]] ^oImg.crop[${name}-tmp;${prew};$x;$y;$sW;$sH;[$.sFormat[jpg]]] ^file:delete[${name}-tmp] ^file:delete[${name}-res] ^if(^insertSQL[$data]<0){ ^file:delete[${name}] ^file:delete[${prew}] $result[-1] }{ $result[0] } } #end @upploadFileИ при инициализации класса
$sW(^if(def $params.sW){$params.sW}{630}) ^rem{размер превьюшки} $sH(^if(def $params.sH){$params.sH}{320}) ^rem{размер превьюшки} $bH(^if(def $params.bH){$params.bH}{700}) ^rem{размер фотки} $bW(^if(def $params.bH){$params.bW}{}) ^rem{размер фотки}PS код может и не оптимальный, но вот пока руки не доберутся его довести до ума.