06:21 Реализация эффекта Philips Ambilight в превью изображений | |
Наткнулся на тему: hxxp://forum.4dle.com.ua/topic11437.html Собственно наша задача - реализовать создание вот таких вот превьюшек (см. картинку выше), используя DLE версии 8.3 или 8.5 (ниже тоже будет работать, но не тестировал лично). Для этого нам понадобится 2-3 минуты свободного времени, не больше. 1) Открыть engine/classes/thumb.class.php и найти: function sizes_img($sizes_img) Выше вставить: function insert_bg($width, $height, $padding) { $dest_image = imagecreatetruecolor($width, $height); $result = imagecopyresized($dest_image, $this->img['src'], 0, 0, 0, 0, $width, $height, $this->img['lebar'], $this->img['tinggi']); if (!$result) return FALSE; for ($i= 0; $i <= 100; $i++) { $result = imagefilter($dest_image, IMG_FILTER_SMOOTH, 6); if (!$result) return FALSE; } if ( ($this->img['lebar'] == 0) or ($this->img['tinggi'] == 0) ) { return FALSE; } $ratio = min( ($width-2*$padding)/$this->img['lebar'] , ($height-2*$padding)/$this->img['tinggi'] ); $new_width = $ratio * $this->img['lebar']; $new_height = $ratio * $this->img['tinggi']; if ( ($new_width >= $this->img['lebar']) or ($new_height >= $this->img['tinggi']) ) { $new_width = $this->img['lebar']; $new_height = $this->img['tinggi']; } imagecopyresampled($dest_image, $this->img['src'], round(($width-$new_width)/2), round(($height-$new_height)/2), 0, 0, $new_width, $new_height, $this->img['lebar'], $this->img['tinggi']); $this->img['src'] = $dest_image; return true; } 2) Найти: return $this->crop( intval($size[0]), intval($size[1]) ); Заменить на: return $this->insert_bg( $size[0], $size[1], 10 ); // 10 - отступ Читаем комментарий в коде и догадываемся, что 10 - это величина, которая задает отступ от краев, которые и будут размыты. 3) При загрузке изображений указывать размеры превью вида widthxheight, например, 130x90. Если парсер съел код (а он такой, что может), то забираем его здесь: hxxp://derepko.ru/datalife_engine/7_-philips-ambilight-effect-datalife-engine/ Идея: Разработчик: Aidsoid DLE порт: aL13n | |
|
Всего комментариев: 0 | |