Колориметрия, печать и препресс: технологии Главная Форум Галерея Контакты Download Статьи
Сражаясь неустанно,
доживём мы, Санчо,
до Золотого века!
 

Форум колористов и полиграфистов

Колориметрия и печать: технологии
 
Текущее время: 1:48, Сб, 18 авг 2018

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 17:13, Вс, 24 фев 2013 
Не в сети
Администратор

Зарегистрирован: 16:58, Ср, 18 авг 2004
Сообщения: 799
Откуда: Москва
Была такая история: вначале научил с помощью библиотеки GD для PHP рисовать нужные мне схемы а потом понял, что без внедренного цветового профиля icc выдавать картинку пользователю нехорошо: не бывает RGB без профиля, цветовой профиль все равно любая программа будет использовать, только не факт, что нужный. Даже программы без поддержки CMS и те присвоят изображению профиль монитора. Вобщем, религия мне не позволяет публиковать фотки и любые изображения с претензией на точную цветопредачу без внедренного цветового профиля. (На тему необходимости внедрения цветового профиля я писал здесь и здесь).
И тут я нарвался на то, что GD icc-профиль в изображение внедрять не умеет. Умеет Image Magic или сокращенно Imagic. Пришлось поставить эту библиотеку на сервер тоже и задачу я решил, однако были сложные моменты. Во первых выяснил, что Imagic наотрез отказывается работать с переменной $image, созданной GD. В одном скрипте но вместе с одним имиджем эти библиотеки работать не могут. Пришлось сохранять промежуточный результат GD в файл на сервере и c этим файлом заставлять работать Imagic. Во вторых выяснил, что в файл png не все программы умеют внедрять профиль: операционка MacOS например при создании скриншотов сама внедряет, а вот Фотошоп и Imagic - не могут внедрить icc в png. Сохранил в результате файл с внедренным профилем icc в формате tif (сжатия жпег не хотелось), у меня спектральный калькулятор рассчитан на профессионалов, которые умеют обращаться с форматом tif.
Вот кусок кода - собственно переход от GD к Imagic через сохранение переменной $image в файл. Не забудьте открыть папку img для записи и задать к ней полный путь от корня сайта. Не забудьте положить туда нужный цветовой профиль, в моем примере это sRGB.icc:
imagepng($image, "/img/image$example.png");
imagedestroy($image);
// end GD

// start imagic
$handle = fopen("/img/image$example.png", "rb");
flock($handle,LOCK_EX);
$img = new Imagick();
$img->readImageFile($handle);
$img->setImageFormat('tiff');
$icc_rgb = file_get_contents('/img/sRGB.icc');
$img -> profileImage('icc', $icc_rgb);
flock($handle,LOCK_UN);
fclose($handle);
$img->writeImage("/img/sRGB_colortable_$example.tif");

$file = "http://rudtp.pp.ru/img/sRGB_colortable_" . $example . ".tif";

header("Content-Type: image/tiff");
header("Content-Disposition: attachment; filename=sRGB_colortable_" . $example . ".tif");
readfile($file);
// end imagic
В аттаче пример картинки tif с внедренным цветовым профилем icc, которую может сам нарисовать на сервере мой спектральный калькулятор.


Вложения:
Комментарий к файлу: пример работы спектрального калькулятора: пиксели гексагонами
Вернуться к началу
2018.navalny.com
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

cron
© CIELab.XYZ
Создано на основе phpBB® Forum Software © phpBB Limited
Конференция запущена 18 августа 2004 года | Защищено от спама системой stopforumspam
Всего посещений - 4561645 | Всего за день - 1234 | Уникальных сегодня - 241, вчера - 286, позавчера - 300