Роман Р.
6 сообщений
#16 лет назад
На некоторых фотосайтах видел функцию превращения цветной фотки в черно-белую, теоретически, получается возможным сделать и весь сайт черно-белым (для отдельных случаев, например в день траура) Дл я текста я так понимаю, необходимо будет сделать отдельный css (если он цветной), подскажите, как это применить к изображениям на сайте?
Дмитрий Васильковский
756 сообщений
#16 лет назад
Цитата ("xgb"):
На некоторых фотосайтах видел функцию превращения цветной фотки в черно-белую, теоретически, получается возможным сделать и весь сайт черно-белым (для отдельных случаев, например в день траура) Дл я текста я так понимаю, необходимо будет сделать отдельный css (если он цветной), подскажите, как это применить к изображениям на сайте?

На php библеотекой GD!
Дмитрий Васильковский
756 сообщений
#16 лет назад
Каждое изображение проходит через этот код!

<?php
//Файл, который мы будет конвертировать
$file = 'someimage.jpg';

// Поле заголовка
header('Content-type: image/jpeg');

// Размеры изображения
list($width, $height) = getimagesize($file);

// Создаем изображение JPEG из файла
$source = imagecreatejpeg($file);

// Создаем холст
$bwimage= imagecreate($width, $height);

// Создаем 256-цветную палитру
for ($c=0;$c<256;$c++)
{
$palette = imagecolorallocate($bwimage,$c,$c,$c);
}

//Функция yiq для преобразования в серый цвет
function yiq($r,$g,$b)
{
return (($r*0.299)+($g*0.587)+($b*0.114));
}

// Считываем оригинальное изображение по пикселям
for ($y=0;$y<$height;$y++)
{
for ($x=0;$x<$width;$x++)
{
$rgb = imagecolorat($source,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

//Используем функцию yiq для изменения rgb-палитры нашего цветного изображения, чтобы преобразовать его в серое
$gs = yiq($r,$g,$b);
imagesetpixel($bwimage,$x,$y,$palette);
}
}

// Выводим в браузер преобразованное изображение
imagejpeg($bwimage);
?>

Ну а css генерировать темже алгоритмом ($r*0.299)+($g*0.587)+($b*0.114));
но проще тему отдельную написать и по особым случаям включать!
Роман Р.
6 сообщений
#16 лет назад
Спасибо. Буду пробовать
Михаил В.
2195 сообщений
#16 лет назад
Цитата:
Ну а css генерировать темже алгоритмом ($r*0.299)+($g*0.587)+($b*0.114));

Чего?

xgb
Цитата:
подскажите, как это применить к изображениям на сайте

Есть несколько вариантов - покажите лучше сайт, эффект на котором вам понравился.
Евгений Б.
5330 сообщений
#16 лет назад
Каждое изображение проходит через этот код!

т.е. если на сайте 1500 уников в день, то хостер вломит по полной за загрузку сервера??
сделайте css файл для траура и картинки в черно-белый вариант переведите и не парьтесь
Роман Р.
6 сообщений
#16 лет назад
Цитата ("ArtPro"):
Каждое изображение проходит через этот код!

т.е. если на сайте 1500 уников в день, то хостер вломит по полной за загрузку сервера??
сделайте css файл для траура и картинки в черно-белый вариант переведите и не парьтесь


Пожалуй, соглашусь с вами.
Дмитрий О.
771 сообщение
#16 лет назад
А что, STYLE="filter:gray" уже отменили? Правда это только для ИЕ будет работать.
Для "более тяжелых случаев":
Дмитрий Васильковский
756 сообщений
#16 лет назад
Цитата ("ArtPro"):
Каждое изображение проходит через этот код!

т.е. если на сайте 1500 уников в день, то хостер вломит по полной за загрузку сервера??
сделайте css файл для траура и картинки в черно-белый вариант переведите и не парьтесь

Речь идёт не о дизайне шаблона, а о картинках которые размещены самими пользователями (аватары, выложеные изображения в разделе), дублирование которых проблематично и трудоёмко!
А если про дизайн-то конечно проще тему сделать и всё!
Евгений Б.
5330 сообщений
#16 лет назад
Картинки пользователей прогонять через скрипт.... это жесть. особенно если посетителей много... я бы тогда слил папку с картинками ACDSEE натравил бы на пакетную обработку и залил бы на сервак... или уж если на то пошло, то изначально при добавлении картинок бы сделал бы сохранение варианта и чб.
нагрузка на посещаемый сервер важнее.