Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
• Новости
• Последние поступления
• Книжный магазин
  Hardware:
• Видеоустройства
• Системные платы
• Процессоры
• Мобильные устройства
• Аудиосистема
• Охлаждение системы
• Накопители информации
• КПК и ноутбуки
• Телефоны и связь
• Периферия
• Система
• Сети
• Разные устройства
 
  Programming:
• Web-разработка
• Языки программирования
• Технологии и теория
• Разработка игр
• Программная инженерия
 
  Software:
• Операционные системы
• Windows 7
• Базы данных
• Обзоры программ
• Графика и дизайн
   
  Life:
• Компьютерная жизнь
• Разные материалы
   
• Партнеры
• Публикация
• Правовая информация
• Реклама на сайте
• Обратная связь
• Экспорт в RSS Экспорт в RSS2.0
    Читать в Яндекс.Ленте



Делаем вебдванольные превьюшки с 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(4, 1);

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

//shadow color
$shadow->setImageBackgroundColor(new ImagickPixel(`black`));
//shadow is made here
$shadow->shadowImage(80, 2.5, 5, 5);

//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://bin.cakephp.org/view/906967763

Это интересно:








версия для печатиРаспечатать статью


Вернуться в раздел: Programming / PHP


Реклама:
Читать наc на:

Add to Google
Читать в Яндекс.Ленте






Rambler's Top100
© Copyright 1998-2012 Александр Томов. All rights reserved.