Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
http://www.rusdoc.ru. Версия для печати.

Делаем вебдванольные превьюшки с ImageMagick

Раздел: Programming / PHP @ 30.10.2008 | Ключевые слова: ImageMagick php

Автор: XuMiX
Источник: habrahabr

Недавно, у меня случилась проблема с GD на сервере — он перестал понимать png, после получаса мытарств, решил посмотреть на ImageMagick и его PHP интерфейс IMagick
После недолгого гугления нашел замечательный блог посвященный Imagick. Там же нашел способ делать красивые превьюшки. Однако, способ, предложенный там, правильно отрабатывал только с png картинками. Я немного поковырялся и сделал свой.

$thumb = new Imagick();
//read the image from path
$thumb->readImage($fullpath)
//white canvas
$canvas = new Imagick();
$canvas->newImage($width$height, new ImagickPixel("white"));
//make a thumb, with reduced size compared to canvas
$thumb->thumbnailImage($width-10$height-10);

//sharpen if small thumb
if ($width 300)
    
$thumb->sharpenImage(41);

//round corners, web 2.0 :))
$thumb->roundCorners(55);
//clone image to create shadow
$shadow $thumb->clone();

//shadow color
$shadow->setImageBackgroundColor(new ImagickPixel(`black`));
//shadow is made here
$shadow->shadowImage(802.555);

//place shaow on the canvas
$canvas->compositeImage($shadow$shadow->getImageCompose(), ,);
//place image on the canvas
$canvas->compositeImage($thumb$thumb->getImageCompose(), ,);


$canvas->stripImage();
$canvas->writeImage($writeTo);
//cleanup
$canvas->destroy();
$shadow->destroy();
$thumb->destroy();
?>

В итоге получим примерно вот такую картинку;):
490704de9e6b9.jpg - image uploaded to Picamatic
upd:то же самое с русскими комментами http://www.rusdoc.ru/go.php?http://bin.cakephp.org/view/906967763


Вернуться в раздел: Programming / PHP
© Copyright 1998-2012 Александр Томов. All rights reserved.