2013-08-12 7 views
1

Несколько месяцев назад я установил Image::Magick на моем PERL сервере, но теперь у меня есть неожиданное поведение ..Perl Image :: Magick Преобразование формата

После нескольких часов исследований, я застрял на какой-то проблемы ..

Что я пытаюсь сделать, это преобразовать изображение из .png в .jpg.

Здесь нет проблем. Проблема возникает здесь. в основном мой преобразованный файл «.jpg» всегда большой чем .png после преобразования ..

здесь отрывок из моего кода:

my $image = Image::Magick->new; 

my $x = $image->Read($serverPathDir.'/'.$serverFileName); # an .png file 

    $x = $image->Set(Gravity => 'Center'); 
    $x = $image->Resize(geometry=>'435x210'); 
    $x = $image->Set(Quality=>'80%'); 
    $x = $image->Write($serverPathDir.'/'.'.jpg'); 

После некоторых исследований и теории, я понял, что такая проблема может существовать в конкретные изображения .. когда я тестирую с другими изображениями, результат более удовлетворительный, но ничего подобного GIMP (png to jpg) ... Я не знаю, что использует компрессор Image::Magick, но, похоже, он сильно отличается от других, т. е. GIMP

ответ

0

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

При преобразовании в другой формат необходимо произвести декомпрессию изображения. Затем вы сжимаете его в другом формате, который, возможно, не сможет сжать его так же сильно, как исходный формат.
Также PNG с несколькими цветами может быть сжат еще больше, используя цветовую палитру, содержащую только фактически используемые цвета.

Таким образом, на самом деле довольно вероятно найти файл, в котором версия JPEG будет больше, если у вас достаточно большой размер выборки.

Подробнее об этом вы можете узнать на странице Wikipedia.

Я бы только конвертировал в JPEG для файлов размером более, чем какой-либо произвольный размер (более крупные файлы, скорее всего, будут фотографией.), Если вам абсолютно не нужно использовать формат JPEG. (Например, программа, которая не может читать файлы PNG)

1

При преобразовании в jpg и изменении размера оригинала используйте кратность 8. Таким образом, измените размер изображения на геометрию '43 6x216 'и посмотреть, поможет ли это.

См here для более

+1

436 не кратно 8. Я бы предложил 448 сохранить вещи в аналогичном соотношении с 435x210. –

+0

привет ребята, я следовал вашим sugestions, но моя проблема не решена .. Plus, изменение размера 448, делает мой «.jpg» еще более большие Мой стандарт .png есть около 159Кб .. конвертируется в .jpg ~ 191KB. Настолько странно, что это поведение .. есть ли другие сугестоны? Спасибо всем. –

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