Автоматическое создание превью с эффектом Philips Ambilight
Данный хак может послужить одним из вариантов оформления галереи фотографий в стиле технологий Philips (Philips Ambilight). Руку к реализации такого эффекта
приложил
хабраюзер Aidsoid. Я лишь по просьбе желающих захотел реализовать возможность создания такого эффекта и в DLE.
Итак, наша задача получить превью показанного ниже типа, используя CMS DatalifeEngine.
Делается это очень просто.
Открываем класс обработки изображений /engine/classes/thumb.class.php и находим строчку:
1) function size_auto($size = 100, $site = 0)
Выше вставляем следующий кусок кода:
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[ inggi]);
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[ inggi] == 0) ) {
return FALSE;
}
$ratio = min( ($width-2*$padding)/$this->img[lebar] , ($height-2*$padding)/$this->img[ inggi] );
$new_width = $ratio * $this->img[lebar];
$new_height = $ratio * $this->img[ inggi];
if ( ($new_width >= $this->img[lebar]) or ($new_height >= $this->img[ inggi]) ) {
$new_width = $this->img[lebar];
$new_height = $this->img[ inggi];
}
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[ inggi]);
$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) При загрузке изображения указываем размеры создания тумбы, указывая ширину и высоту. Например, 150x100, либо 300x200 и т.п.
Дело сделано, пользуйтесь на здоровье. И напоследок наш результат, протестированный на DLE 8.3 и 8.5:
Источник:Блог о верстке Руслана Дерепко, DLE
приложил
хабраюзер Aidsoid. Я лишь по просьбе желающих захотел реализовать возможность создания такого эффекта и в DLE.
Итак, наша задача получить превью показанного ниже типа, используя CMS DatalifeEngine.
Делается это очень просто.
Открываем класс обработки изображений /engine/classes/thumb.class.php и находим строчку:
1) function size_auto($size = 100, $site = 0)
Выше вставляем следующий кусок кода:
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[ inggi]);
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[ inggi] == 0) ) {
return FALSE;
}
$ratio = min( ($width-2*$padding)/$this->img[lebar] , ($height-2*$padding)/$this->img[ inggi] );
$new_width = $ratio * $this->img[lebar];
$new_height = $ratio * $this->img[ inggi];
if ( ($new_width >= $this->img[lebar]) or ($new_height >= $this->img[ inggi]) ) {
$new_width = $this->img[lebar];
$new_height = $this->img[ inggi];
}
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[ inggi]);
$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) При загрузке изображения указываем размеры создания тумбы, указывая ширину и высоту. Например, 150x100, либо 300x200 и т.п.
Дело сделано, пользуйтесь на здоровье. И напоследок наш результат, протестированный на DLE 8.3 и 8.5:
Источник:Блог о верстке Руслана Дерепко, DLE
Похожие новости
- Blitz - шаблон для DLE
- Весь май две лицензии по цене одной
- Rubik - универсальный шаблон
- Telegram Instant View для DLE
- Быстрый поиск новостей только по заголовкам - модуль ModLiveSearch
- DLE: Telegram Instant View
- Весна скидок с DataLife Engine!
- DataLife Engine v.18.0 Final Release
- DataLife Engine v.18.0 Press Release
- Free-Plums на dle 17.3