Конференция "Media" » Преобразовать TJPEGImage в Grayscale без перепаковки
 
  • Дмитрий Белькевич (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
    ?
    это если требования к формату не жесткие...
 
Конференция "Media" » Преобразовать TJPEGImage в Grayscale без перепаковки
Есть новые Нет новых   [134427   +37][b:0][p:0]