Я решил, что хочу изменить свой граватар на круглый. У меня есть это в моем блоге с css, и я предпочитаю эффект, поэтому решил использовать немного imagemagick, чтобы дать моему изображению круговой альфа-канал (чтобы я мог использовать его и на SO и т. Д.). парой быстрых команд позже я был отсортирован:
# crop to square 422x422 with 0x0 offset
convert mike_gravatar.jpeg -crop 422x422+0+0 mike_gravatar_square.jpeg
# give circular alpha channel around it NOTE this is for a 422x422 image (note the 211x211)
convert mike_gravatar_square.jpeg \( +clone -threshold -1 -negate -fill white -draw "circle 211,211,211,0" \) -alpha off -compose copy_opacity -composite mike_gravatar_circle.png
отлично, теперь мы просто загрузим это в граватар, у меня будет красивое круглое обрезанное изображение, и все будет хорошо с миром.
как вы, наверное, догадались из вопроса, не все так хорошо:
хорошо, я, должно быть, явно испортил свой imagemagick и не проверил, что изображения до и после одинаковы, снова откройте изображения рядом друг с другом и убедитесь, что они действительно одинаковы. Я пытаюсь загрузить снова в gravatar и замечаю, что они, похоже, обрабатывают изображения после этапа «обрезки», вот как это выглядит в браузере после загрузки файла (до того, как обрезка испортит его):
Хорошо, давайте немного покопаемся, кто-то, должно быть, наткнулся на это раньше, поэтому я осмотрелся и вопит одинокая душа в пустынной пустоши форума. Сейчас на это нет ответа, но соответствующий текст здесь:
Кажется, что если фотография или изображение, загруженное в кадратор Gravatar, не имеет угольно-черного цвета, он автоматически выравнивает ближайший серый к черному и затемняет все изображение, включая затемнение белого до серого. Можно подтвердить, что это происходит с любым PNG-изображением с серым фоном или с достаточно большой его долей, независимо от того, содержит ли оно 255 белых цветов и независимо от того, имеет ли оно альфа-смешивание или нет.
Кажется, я могу исправить это, вставив один черный пиксель, это звучит нормально, поэтому я пытаюсь добавить черный пиксель, затем один черный и один белый пиксель, результат:
Так что в основном теперь у меня нет идей:
- Кто-нибудь знает, что делает постобработка gravatar, поэтому я могу отменить его или противодействовать его эффектам с помощью предварительной обработки?
- документирована ли эта «функция» где-либо, или ее можно отключить или обойти?
Я думаю, было бы неплохо предварительно обработать изображение, чтобы противодействовать затемнению, которое они сделают с ним, но это потребует точного знания того, что они делают, чтобы изменить вещи, и, очевидно, это может быть невозможно (зависит от относительного движения каждого цвета, Я полагаю)
РЕДАКТИРОВАТЬ:
Я попытался сделать инверсное изображение, чтобы увидеть, основывается ли оно на обработке средних или экстремальных значений, и оно также было затемнено, кажется, что это скорее среднее значение: