-
Дмитрий Белькевич (22.05.13 13:30) [0]Видел сообщение Sapersk'ого, где он писал, что JPEG можно сделать Grayscale 256 без перепаковки, удалив цветовую информацию из файла. Возможно ли это сделать стандартной библиотекой Delphi? Или еще какой-то?
-
Sapersky (22.05.13 19:15) [1]Наверное, это:
"Кое-какие операции можно делать без распаковки, хотя преобразование в два цвета вряд ли к ним относится.
http://www.betterjpeg.com/
(Convert to Black & White (Grayscale) - это скорее всего перевод в оттенки серого, в jpeg цветность хранится отдельно от яркости, и можно её просто выкинуть)"
Стандартной библиотекой нельзя. Хотя там есть свойство Grayscale, но сама библиотека рассчитана исключительно на lossy-перепаковку.
Самый простой вариант - пнуть через командную строку утилиту Jpegtran из libJpeg или libJpeg-turbo:
jpegtran.exe -grayscale srcfile.jpg > dstfile.jpg -
brother © (23.05.13 07:53) [2]имхо, если уж мы так "пахабим" картинку:
> Grayscale 256
то, перепаковка не шибко скажется на качестве... -
Дмитрий Белькевич (23.05.13 09:00) [3]>то, перепаковка не шибко скажется на качестве...
Скажется, потому как существуют черно-белые картинки, которые хотелось бы как 8 бит сохранять. Вот - цвет бы в них удалить без добавления артефактов. -
Дмитрий Белькевич (23.05.13 09:02) [4]Sapersky, спасибо, посмотрю.
-
brother © (25.05.13 22:06) [5]> черно-белые картинки
> Вот - цвет бы в них удалить
те фактически там нет градации серого? только черный или белый?
опять же, ты пробовал перепаковывать? потери сильно заметны? -
brother © (25.05.13 22:08) [6]нц и до кучи, может лучше тогда делать так:
jpeg>bmp>конвертим в монохром>png
?
это если требования к формату не жесткие...