1. Внимание! Строго запрещен ап своих тем чаще чем раз в 7 дней! Если ваши услуги/товары никому не интересны - UP вам не поможет! Хотите чтобы тема была сверху всегда - оплачивайте закрепление!

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

Тема в разделе "Рекламный раздел", создана пользователем Sunday, 23 фев 2013.

  1. Sunday

    Sunday

    Регистр.:
    13 дек 2009
    Сообщения:
    732
    Симпатии:
    323
    Нужно создать функцию для обработки одного или более изображений, загружаемых пользователем через форму.
    Требования:
    Создание 2-х картинок.
    Большая уменьшается до указанных размеров пропорционально. На большую накладывается лого в правый нижний угол.
    Маленькая превьюшка обрезается квадратом до указанных размеров. Так же у маленькой картинки должны быть скруглены углы и фон должен остаться прозрачным.
    На данном этапе пока интересует стоимость этой работы. Ближайшие день-два будет ясно - нужно заказывать или нет. По возможности пишите сразу в личку.
    Спасибо.
     
  2. Darkness

    Darkness Постоялец

    Регистр.:
    21 янв 2013
    Сообщения:
    146
    Симпатии:
    69
    Тень нужна, или просто круглые края?
     
  3. Sunday

    Sunday

    Регистр.:
    13 дек 2009
    Сообщения:
    732
    Симпатии:
    323
    Никаких эффектов, просто обрезать, скруглить, углы оставить прозрачными.
     
  4. Darkness

    Darkness Постоялец

    Регистр.:
    21 янв 2013
    Сообщения:
    146
    Симпатии:
    69
    Ладно по быстрому написал код.
    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($widthprev0);
    $widthtmpimgprev $tmpimgprev->getImageWidth();
    $heighttmpimgprev $tmpimgprev->getImageHeight();
    $canvasimgprev->newImage($widthtmpimgprev$heighttmpimgprev, new ImagickPixel("none"));
    if (
    $widthtmpimgprev 400) {
        
    $tmpimgprev->sharpenImage(41);
    }
    $tmpimgprev->roundCorners($roundprev$roundprev);
    $canvasimg->compositeImage($tmpimg$tmpimg->getImageCompose(), 00);
    $canvasimgprev->compositeImage($tmpimgprev$tmpimgprev->getImageCompose(), 00);
    $canvasimg->stripImage();
    $canvasimgprev->stripImage();
    $canvasimg->writeImage($writeImgTo);
    $canvasimgprev->writeImage($writeImgTo);
    $canvasimg->destroy();
    $canvasimgprev->destroy();
    $tmpimg->destroy();
    $tmpimgprev->destroy();
    }
    ?>