2015-10-20 5 views
-2

Если есть изображение в формате JPEG с размерами 800x600, и я хочу уменьшить его размер файла, уменьшив его размеры до, скажем, 768x576, как бы я это сделал?Можно ли уменьшить размер файла изображения JPEG, уменьшив его размеры?

Используя библиотеку GDI + в .NET, я подумал бы, что, просто открыв изображение, скопировав его на другой с желаемыми размерами и настройкой качества 100, получившееся изображение будет иметь такое же качество и будет автоматически меньше (в байтах), потому что его размеры меньше оригинала, но в моих тестах это, похоже, не так. Фактически размер полученного изображения больше оригинала: от ~ 70K до ~ 280K.

Итак, можно ли это сделать? Конечная цель - уменьшить размер изображения. Я также попытался сохранить изображение с такими же размерами и настройкой качества 70 или даже 50, но я не хочу этого делать, потому что невозможно определить, было ли исходное изображение уже сжато до такой степени, когда его сохранение с такими низкими настройками приведет к слишком большому снижению качества.

+0

Ваш фактический вопрос «как определить уровень сжатия JPEG с C#»? (https://support.microsoft.com/en-us/kb/324790) –

+0

Нет ... Я наткнулся на эту статью во время моих исследований, но последний бит о приложениях, использующих пользовательские таблицы и не позволяющие _always_ определять настройка качества с использованием этого метода заставила меня отказаться от него. – ferc

ответ

1

Вы не храните файл с настройкой качества 100. То, что вы делаете, это как записать mp3-файл размером 128 Кбит/с и сохранить его на 192 кбит/с. Вы получаете больший файл с той же информацией в нем, и вы, вероятно, теряете некоторые данные, просто расшифровывая и кодируя снова.

Начну с сохранения размера изображения и определения качества, при котором вы получите тот же размер файла. После этого вы можете играть с размером и качеством, пока не получите желаемый размер файла.

+0

В дополнение к размерам и размерам пикселей обратите внимание, что на размер файла влияет выборка JPEG (4: 1: 1, 4: 2: 2 или 4: 4: 4), которую вы не можете контролировать с помощью GDI +. Для получения дополнительной информации см. Этот [вопрос] (http://stackoverflow.com/questions/3954863/how-do-you-save-a-jpeg-with-4-2-2-and-highquality-in- сеть) –

Смежные вопросы