Я разработал сайт сообщества по обмену фотографиями с использованием CodeIgniter 1.7. Размер фотографий, загружаемых участниками, автоматически изменяется в ряде форматов, для которых я использую класс CodeIgniter Image Manipulation. Этот класс встроен в платформу и в основном является оболочкой для нескольких библиотек манипулирования изображениями, таких как GD, GD2, ImageMagick и NETPBM. На моем хосте я могу использовать только GD2, поэтому этот вопрос и будет.
По моей проблеме. Вот пример фото с измененным размером на моем сайте. Обратите внимание, что оригинал был очень большим, более 3000 пикселей в ширину:
http://www.jungledragon.com/image/195/female_impala_close-up.html
Теперь посмотрите на это же изображение, также с измененным размером, чуть больше на Flickr:
http://www.flickr.com/photos/fledder/3763538865/in/set-72157621744113979
Видите разительную разницу? Я пытаюсь преодолеть этот огромный разрыв. Первым делом я применил фильтр резкости к изображениям. Вы можете увидеть результат здесь:
Хотя все еще не идеально, оно по крайней мере приближается к уровню резкости изображения Flickr. Оставшаяся проблема заключается в том, что цвета размываются, как будто их насыщенность уменьшается. Это происходит раньше, чем фильтр повышения резкости, поэтому он должен быть в GD2.
Этот вопрос жизненно важен для меня, но я не знаю, где искать. Я обнаружил, что некоторые потоки .NET говорят о подвыборке цветности, но я не знаю, что делать с этой информацией в моей настройке. Я ищу любое решение, которое работает в рамках моих настроек.
Обновление: Настоящим исходный файл, именно так, как я загрузил его на свой сайт и Flickr:
http://www.jungledragon.com/img/DSC07275.jpg
Обновление 2 : Я в шоке. В лучшем случае. Мне потребовалось много усилий для установки ImageMagick, но после переключения на него (что было связано с установкой 'imagemagick' в качестве библиотеки для использования в классе манипуляции изображениями Code Igniter, результат тестового изображения будет следующим:
Изменение размера ImageMagick делает это точно так, как задумано. Цвета сохранены, а резкость есть. Да, я отключил свою пользовательскую процедуру повышения резкости, так как она больше не нужна из-за ImageMagick. Кроме того, этот процесс намного быстрее и требует меньше памяти. И вот еще одна важная часть: я не могу это объяснить, но я абсолютно ничего не сказал ImageMagick об использовании определенного цветового профиля, который был предложен пользователем @Alix. До сих пор в моем тестировании казалось, что информация о цвете соблюдается со встроенным профилем или без него. Выход просто является уменьшенной версией ввода. ImageMagick действительно такой умный или я сплю?