У меня есть вопрос относительно записи в формате JPEG. Предположим, у меня есть файл PNG example.png, и я хочу изменить формат файла в JPEG без потери информации. Для теперь, у меня есть два решения:Запись в формате Lossless JPEG
Solution 1: выполнить файл форматирования преобразование с MATLAB
I = imread ('example.png');
imwrite (I, 'example.jpg', 'Mode', 'lossless');
II = imread ('example.jpg');
отличается = I-II;
макс (различаются (:))
Это решение может производить без потерь файлов JPEG. Однако проблема с этим решением заключается в том, что некоторая информация в исходном изображении, такая как разрешение DPI, может быть потеряна. Более того, получаемое изображение не может быть просмотрено популярными программами просмотра изображений, такими как IrfanView и Windows Paint.
Решение 2: использовать программное обеспечение IrfanView. Используйте функцию «Сохранить как» программы IrfanView, мы можем легко изменить формат файла. Однако, несмотря на то, что при сохранении файла JPEG был установлен параметр «best quality 100», на выходном изображении также отображается некоторая потеря информации. Разница между этими двумя изображениями не равна нулю для всех пикселей.
Я поэтому задаюсь вопросом, что я должен сделать, чтобы решить проблему. Любые идеи будут оценены.
Очень легко решить вашу проблему: остаться с изображением PNG. – mmgp
Jpeg2000 - формат файла JPEG без потерь, но, к сожалению, практически ни одно программное обеспечение не поддерживает jpeg2000. .png и .gif - лучший выбор для файлов без потерь. –
Ваше первое предположение необходимо изменить. «Обычные» изображения JPEG используют формат сжатия с потерями. Как говорит @mmgp, пребывание в PNG - хороший вариант. Если вы ищете лучшую степень сжатия, тогда вам нужно отказаться от идеи без потерь. – BitBank