Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: imagecreatefromjpeg Создает менее яркое изображение
 
 автор: tim313   (05.01.2017 в 23:13)   письмо автору
 
 

Собственно заметил что превьюшки более тусклые чем оригиналы.
Сначало грешил на функцию ImageCopyResampled но потом запустил более простой скрипт и был удивлен:


function LoadJpeg($imgname)
{
    $im = @imagecreatefromjpeg($imgname);  
    return $im;
}

header('Content-Type: image/jpeg');
$img = LoadJpeg('123456.jpg');
imagejpeg($img,null,100);


Выводимое изображение более серое и менее яркое чем если бы его выводили через простую цункцию file_get_contents

Тоесть выходит что функция imagecreatefromjpeg взяла несовсем верные значение цвета пикселя RGB, или изменила их.

Кто нибуть знает как можно получить настоящий, не искаженный "идентификатор изображения" ?
Или через какие фильтры можно провести "идентификатор изображения" что бы приблизить его цветность к интенной?

  Ответить  
 
 автор: tim313   (06.01.2017 в 02:03)   письмо автору
 
   для: tim313   (05.01.2017 в 23:13)
 

Стало интересно и я поэксперементировал: Создал графический файл 255 на 255 пикслей с политрой красного цвета, после этого полученный файл сохранил на диск, загрузил на сервер, открыл при помощи функции imagecreatefromjpeg и стал попиксельно сравнивать RGB цвета каждого пикселя из файла через функцию и того цвета который был присвоен этому пикселю когда этот файл создавался через скрипт, результат довольно забваный:


155x229 99-98 26-26 26-27 (1,0,-1)
155x230 99-97 25-26 25-24 (2,-1,1)
155x231 99-98 24-24 24-23 (1,0,1)
155x232 99-98 23-24 23-23 (1,-1,0)
155x233 99-98 22-22 22-22 (1,0,0)
155x234 99-97 21-21 21-21 (2,0,0)
155x235 99-98 20-20 20-20 (1,0,0)
155x236 99-98 19-20 19-18 (1,-1,1)
155x237 99-98 18-18 18-17 (1,0,1)
155x238 99-98 17-18 17-17 (1,-1,0)
155x239 99-98 16-17 16-16 (1,-1,0)
155x240 99-97 15-16 15-15 (2,-1,0)
155x241 99-98 14-14 14-14 (1,0,0)
155x242 99-98 13-14 13-12 (1,-1,1)
155x243 99-98 12-12 12-11 (1,0,1)
155x244 99-97 11-11 11-10 (2,0,1)
155x245 99-99 10-11 10-10 (0,-1,0)
155x246 99-98 9-10 9-9 (1,-1,0)
155x247 99-98 8-8 8-8 (1,0,0)
155x248 99-98 7-8 7-7 (1,-1,0)
155x249 99-98 6-7 6-6 (1,-1,0)
155x250 99-97 5-6 5-5 (2,-1,0)
155x251 99-98 4-4 4-4 (1,0,0)
155x252 99-98 3-4 3-4 (1,-1,-1)
155x253 99-98 2-2 2-3 (1,0,-1)
155x254 99-97 1-2 1-0 (2,-1,1)
155x255 99-0 0-0 0-0 (99,0,0)
156x157 98-98 98-98 98-98 (0,0,0)
156x158 98-97 97-97 97-97 (1,0,0)
156x159 98-98 96-96 96-97 (0,0,-1)
156x160 98-97 95-96 95-94 (1,-1,1)
156x161 98-98 94-94 94-93 (0,0,1)
156x162 98-97 93-93 93-92 (1,0,1)
156x163 98-98 92-92 92-92 (0,0,0)
156x164 98-97 91-91 91-91 (1,0,0)
156x165 98-98 90-89 90-90 (0,1,0)

вначале координаты, потом идут цвета красный зеленый синий (вначале цвет который создавался, потом который стал), последнии три цифры в скобках это разница того что создавалось и того что стало
Файл конечно же сохранялся в 100 качестве.
Тестировал на 2х разных серверах с GD FreeType Version 2.5.2 FreeType Version 2.4.2
Результат аналогичен на 100%

  Ответить  
 
 автор: confirm   (06.01.2017 в 09:49)   письмо автору
 
   для: tim313   (06.01.2017 в 02:03)
 

Что такое "безопасная палитра" надеюсь знаете, теперь думаю будете знать почему она появилась. Так что нет в этом ничего удивительного. А если еще работать с JPEG, то он при каждом новом сохранении будет терять еще и в качестве, из-за очередного сжатия.

  Ответить  
 
 автор: tim313   (06.01.2017 в 12:59)   письмо автору
 
   для: confirm   (06.01.2017 в 09:49)
 

Удивительно что нет технических возможностей учитывать все цвета через GD библиотеку.
Решение нашел в imagemagick и CYMK colour modes

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования