[Работа] Создать функцию на php для ImageMagick

Sunday

Cōgitō ergō sum
Регистрация
13 Дек 2009
Сообщения
823
Реакции
342
Нужно создать функцию для обработки одного или более изображений, загружаемых пользователем через форму.
Требования:
Создание 2-х картинок.
Большая уменьшается до указанных размеров пропорционально. На большую накладывается лого в правый нижний угол.
Маленькая превьюшка обрезается квадратом до указанных размеров. Так же у маленькой картинки должны быть скруглены углы и фон должен остаться прозрачным.
На данном этапе пока интересует стоимость этой работы. Ближайшие день-два будет ясно - нужно заказывать или нет. По возможности пишите сразу в личку.
Спасибо.
 
Тень нужна, или просто круглые края?
 
Никаких эффектов, просто обрезать, скруглить, углы оставить прозрачными.
 
Ладно по быстрому написал код.
PHP:
<?php
/****************/
$roundprev = 5;
$widthprev = 300;
$writeImgTo = "";
/****************/
$pathimg = glob('/tmpimg/*.*');
$tmpimgs = new Imagick($pathimg);
foreach($tmpimgs as $tmpimg) {
$widthtmpimg = $tmpimg->getImageWidth();
$heighttmpimg = $tmpimg->getImageHeight();
$canvasimg = new Imagick();
$canvasimgprev = new Imagick();
$canvasimg->newImage($widthtmpimg, $heighttmpimg, new ImagickPixel("none"));
$tmpimgprev = $tmpimg->clone();
$tmpimgprev->thumbnailImage($widthprev, 0);
$widthtmpimgprev = $tmpimgprev->getImageWidth();
$heighttmpimgprev = $tmpimgprev->getImageHeight();
$canvasimgprev->newImage($widthtmpimgprev, $heighttmpimgprev, new ImagickPixel("none"));
if ($widthtmpimgprev < 400) {
    $tmpimgprev->sharpenImage(4, 1);
}
$tmpimgprev->roundCorners($roundprev, $roundprev);
$canvasimg->compositeImage($tmpimg, $tmpimg->getImageCompose(), 0, 0);
$canvasimgprev->compositeImage($tmpimgprev, $tmpimgprev->getImageCompose(), 0, 0);
$canvasimg->stripImage();
$canvasimgprev->stripImage();
$canvasimg->writeImage($writeImgTo);
$canvasimgprev->writeImage($writeImgTo);
$canvasimg->destroy();
$canvasimgprev->destroy();
$tmpimg->destroy();
$tmpimgprev->destroy();
}
?>
 
Назад
Сверху