Навигация
Календарь
«    Июль 2007    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
Популярное
Дружественные ресурсы
Блог отчаянного PHP-шника

пресс-релизы, PR, размещение пресс-релизов

дешевые ноутбуки Acer, Asus, Dell, Fujitsu-Siemens, BenQ, Sony
надежное продвижение сайтов оптимизация Оптимизация по низким ценам в г киев - Робочий час. Часы. мелодии для будильника - Детская больница 2 медицинский центр? Нетрадиционной медицины. - разработка web сайтов
ноутбуки
25 июля 2007 :

Конвертация изображения в grayscale с помощью PHP и библиотеки GD.


Собственно, его код:


<?php
// Исходный файл .jpg
$file = 'test_file.jpg';

header('Content-type: image/jpeg');

list($width, $height) = getimagesize($file);

$source = imagecreatefromjpeg($file);
$bwimage= imagecreate($width, $height);
for ($c=0;$c<256;$c++)
{
$palette[$c] = imagecolorallocate($bwimage,$c,$c,$c);
}

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;

$gs = yiq($r,$g,$b);
imagesetpixel($bwimage,$x,$y,$palette[$gs]);
}
}
// выводим черно-белое изображение
imagejpeg($bwimage);
?>


Если оформить этот код в функцию, то можно вызывать ее по мере необходимости (если у кого-то такая необходимость вдруг появится).

Скачать скрипт конвертации изображения в grayscale с помощью PHP и библиотеки GD.

Похожие новости:
  • Автоматическое создание thumbnails (тумбы, превьюшки) на php.
  • Ограничение количества загрузок с одного IP-адреса.
  • Анализ прочности позиций сайта в ТОП Яндекс.
  • Как узнать, когда на сайт заходил поисковый бот?
  • Ноутбук Asus VX2 yellow
  •  (голосов: 12)
    Автор: vozisov Дата: 26 июля 2007 01:00 ICQ: --
    уже после опубликования этого скрипта я подумал: а не изобретение ли это велосипеда?
    И точно, есть стандартное решение в документации по PHP :)

    <?php
    $im = imagecreatefrompng('dave.png');
    if ($im && imagefilter($im, IMG_FILTER_GRAYSCALE)) {
    echo 'Image converted to grayscale.';
    imagepng($im, 'dave.png');
    } else {
    echo 'Conversion to grayscale failed.';
    }

    imagedestroy($im);
    ?>
    [ ]
    Автор: bert Дата: 26 июля 2007 18:50 ICQ: --
    В стандартном решении работа идет с png файлом. А с jpg тоже так можно?
    [ ]
    Автор: S Lee Дата: 28 августа 2007 22:30 ICQ: --
    Поскольку imagefilter() добавлен только в PHP 5, то вот немножечко модернизированный код, с поддержкой и не truecolor-картинок.
    <?
    // Исходный файл .jpg
    $file = 'test_file.jpg';

    header('Content-type: image/jpeg');

    list($width, $height) = getimagesize($file);

    $source = imagecreatefromjpeg($file);
    $bwimage= imagecreate($width, $height);


    for ($c=0;$c<256;$c++)
    {
    $palette[$c] = imagecolorallocate($bwimage,$c,$c,$c);
    }

    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_tc = imagecolorat($source,$x,$y);
    $ar_rgb = imagecolorsforindex($source, $rgb_tc);

    $r = $ar_rgb["red"];
    $g = $ar_rgb["green"];
    $b = $ar_rgb["blue"];

    $gs = yiq($r,$g,$b);
    imagesetpixel($bwimage,$x,$y,$palette[$gs]);
    }
    }
    // выводим черно-белое изображение
    imagejpeg($bwimage);
    ?>
    [ ]
    Автор: http://univer.by Дата: 6 апреля 2008 13:01 ICQ: --
    Очень красиво! Спасибо!
    [ ]
    Автор: irrka Дата: 30 апреля 2008 23:37 ICQ: --
    Спасибо за готовое решение
    [ ]
    Автор: FON Дата: 7 май 2008 17:01 ICQ: --
    Извините за глупый вопрос, но как этим пользоваться? Я особо не продвинут в программировании, но мне оч надо картинки jpg в grayscale переводить... no
    [ ]
    Автор: Tima Дата: 6 августа 2008 15:40 ICQ: --
    Познавательно
    [ ]
    Автор: sashaaa Дата: 12 августа 2008 17:11 ICQ: --
    Автору огромный респект
    [ ]
    Автор: Messiah Дата: 20 сентября 2008 01:21 ICQ: --
    Думаю, что и без моих ценных указаний справитесь lol
    [ ]
    Автор: Messiah Дата: 26 сентября 2008 10:52 ICQ: --
    Кеш никак падлюка не хочет очищаться
    [ ]
    Автор: Messiah Дата: 30 сентября 2008 01:37 ICQ: --
    Скоро буду вынужден попрощаться с подобным, не иначе
    [ ]
    Автор: Messiah Дата: 8 октября 2008 11:24 ICQ: --
    Парни и девушки смелее оставляем свои коменты!!
    [ ]
    Автор: Messiah Дата: 10 октября 2008 10:43 ICQ: --
    Автору 1! Спасибки! мне понравалось!
    [ ]
    Автор: russ-house Дата: 11 ноября 2008 00:16 ICQ: --
    Ваш сайт даже лучше чем-национальный проект жилье
    [ ]
    Автор: qwer Дата: 21 ноября 2008 11:00 ICQ: --
    Все о Дом2 тут

    Условия развития международного туризма
    [ ]
    Автор: qwer Дата: 21 ноября 2008 12:22 ICQ: --
    Все о Дом2 тут
    [ ]
    Автор: marty17 Дата: 21 ноября 2008 19:33 ICQ: --
    [ ]
    Автор: marinkas Дата: 22 ноября 2008 17:18 ICQ: --
    Интересная новость. Сайту 5 баллов. Недвижимость – квартира
    [ ]
    Автор: garry17 Дата: 23 ноября 2008 05:57 ICQ: --
    [ ]