Здравствуй блог, я открываю рубрику «размышления о качестве пазлов». Тема на сегодня - уменьшение и обрезка изображений.
Я начну с самого-самого конца, чтобы информацию, которая нужна, не приходилось искать. Итак, математически вычисленные (как пафосно-то звучит) оптимальные размеры загружаемых изображений для того, чтобы сайт по минимуму уменьшал пазлы, внося резкость границ:
Для просто горизонтальных - 1067+ х 800 (плюс означает «и более», то есть картина 2000х800 загрузится в том же качестве, что и 1067х800).
Для просто вертикальных наоборот - 800 х 1067+.
Для просто панорамных - 1600+ х 800.
Если нужна обрезка только по бокам:
Горизонталь + вертикаль - 1067+ х 800.
Остальные комбинации (ГП, ВП, ГВП) - 1600+ х 800.
Если нужна обрезка только сверху и снизу:
Горизонталь + вертикаль - 800 х 1067+.
Горизонталь + панорамный - 1200 х 900+ (у горизонтального качество будет немного хуже, чем в остальных вариантах).
Вертикаль + панорамный или комбинация всех трех - 1200 х 1600+, но в вертикали тогда качество может заметно просесть.
Смешанная обрезка, когда изображение в одном варианте обрезается по бокам, в другом сверху/снизу. Тут везде можно немного изменять пропорции, чтобы отрегулировать, где больше отрезать, а где меньше:
Горизонталь + вертикаль - 800 х 800.
Остальные комбинации (ГП, ВП, ГВП) - 1200+ х 800.
Про то, как уменьшить изображение вручную до необходимых размеров под спойлером:
1. Если в изображении присутствуют лишние элементы, надписи и что-то, что не должно попасть в пазл (правда, если это что-то стоит по центру, то я тут не помогу, лучше выбрать другую картинку) - нужно сделать обрезку изображения, то есть отрезаем все нежелательные области, оставляя только полезную площадь.
В моем gimp это кнопки «кадрирование» в инструментах и «размер холста» в меню «Изображение»:
Удобнее использовать кадрирование, там можно ручками выделить полезную область и не мучиться с цифрами нужного размера.
2. Уменьшаем изображение с сохранением пропорций. После этого пункта в картине останется все, что было до этого, но все станет пропорционально меньше. Например, у меня есть изображение 1920х1080, я хочу уменьшить его до 1200х800 не меняя пропорции. Так как моя исходное изображение вряд ли имеет точно те же пропорции, то мне нужно уменьшить либо до 1200х?, либо ?х800. Я включаю режим «сохранение пропорций» и вписываю в ширину 1200, после того, как я перемещаю курсор на поле высоты и там автоматом появляется цифра - 675. 675 - это меньше, чем требуемое нам 800, что означает, что я не смогу сделать желаемую высоту. Значит ввожу в высоту 800, получаю ширину 1422, что меня устраивает.
В gimp кнопка лежит в меню «Изображение» и называется «Размер изображения»:
3. Снова обрезаем изображение уже до точного желаемого размера. В этом случае удобнее инструмент «размер холста», так как позволяет указать точные размеры, в отличии от кадрирования, где руками выделяешь область на изображении.
Так, с десертом покончили, можно переходить к основным блюдам (вот вечно так с пазлами, как раз перед обедом насмотришься на все эти сочные, вкусные десерты...).
Для начала немного теории о том, что такое резкая линия и что такое плавная линия. Для начала вспомним, что такое пиксель. Пискель - это минимальная единица изображения на мониторе, он имеет квадратную форму и хоть и мал, но вполне различим невооруженным глазом. Поэтому если взять твердый карандаш (в графическом редакторе, а не в реальности) и провести линию, то она выйдет ломанной, ступенчатой - будут видны эти самые пиксели.
Если взять мягкую кисточку и провести линию - она будет выглядеть гладкой, что может даже показаться, что пикселей тут нет, это ровная линия. На самом деле это иллюзия. Все те же пиксели, только в нужных местах они имеют не основной цвет линии, а смешанный с фоном цвет, за счет чего создается эффект плавного перехода, который наши глаза и мозг воспринимают как ровную линию.
Так, когда мы разобрали, что линий (да и ложки) не существует, все лишь иллюзия, созданная для обмана нашего мозга, можно перейти непосредственно к уменьшению изображения и алгоритмы интерполяции (т.е. уменьшения изображения компьютером). Я их хорошо, с примерами с участием исходного пазла умудрилась описать здесь: https://grandgames.ru/puzzle/online/starinnaya_ulochka#id176667
Если присмотреться к примерам - то можно увидеть, как от худшего алгоритма сжатия происходит разрушение иллюзии - вместо плавной, немного размытой линии видны те самые «пиксели». И чем больше было исходное изображение, тем сильнее этот эффект.
Но в некоторых исходных изображениях можно увидеть эти самые резкие линии, даже без уменьшения. Ну, бывает, что так рисует автор - ему нужна была жесткая линия без плавного перехода. Или бывает, что на контрастной фотографии некоторые линии выглядят жесткими. Стоит учитывать это, поэтому оценивая качество по параметру «снижение качество от уменьшения изображения», открывайте исходник (при помощи кнопки:
По поводу изменения цветовой гаммы. Примеров не дам, они не прошли модерацию. Уменьшение по факту не меняет цветовой гаммы. Но, дело в том, что изображение проходит обработку мозгом, прежде чем мы скажем «хм, в этой картине я вижу экспрессивные оттенки черного золота» (или, скорее, что-то менее бредовое). Мозг воспринимает белый цвет «больше», чем черный. И все светлые оттенки визуально больше, чем темные части изображения. Когда у линии на границе между белым и черным пропадает плавность, то начинает казаться, что белого стало больше, чем было. Из-за этого может появиться иллюзия, что изображение стало в некоторых местах более светлое, чем было. Лично мне кажется, что когда появились такие эффекты - лучше не допускать пазл в каталог, ведь цветовая гамма - важная часть восприятия единой картины, а ее искажение отдаляет от исходного замысла автора и исходного изображения.
Так, я разобрала теорию и модерацию. Перехожу к разделу «Ну и как нам с этим жить?».
Из того, что при уменьшении изображения ухудшается качество, можно сделать вывод, что нужно загружать изображение минимальных возможных размеров. Скажем, итоговый размер горизонтального пазла - 800х600. Тут можно было бы потереть ручки, сказать «ну все просто, уменьшаем до 800х600 и вообще никаких искажений!», но самый-самый минимальный размер загружаемого изображения 800х800. То есть, сайт просто не пустит картину меньшего размера. Ну ладно. Ну ладно, можно ведь загрузить изображение 1200х800 и сделать сразу все 3 ориентации пазла (горизонтальную 800х600, вертикальную 600х800 и панорамную 1200х600), как раз все идеально вписывается для каждой из ориентаций. Но при попытке загрузить пазл мы можем встретиться с особенностью - для вертикального и горизонтального варианта обрезка будет происходить по бокам, а для панорамного пазла - сверху и снизу. Я нарисовала как все обрезается это от руки:
Черными уголками обозначена исходная область 1200х800, черная рамка - вертикальные, синяя рамка - панорамные, синяя штрихами рамка - горизонтальное.
Но если в нашем пазле во весь рост стоит девушка в центре картины и обрезка сверху/снизу ужаснейшим образом нарушает всю синергию изображения, то
такой вариант точно не подходит. Что делать? Полностью отказываться от всех трех ориентаций на не абстрактных пазлах? Конечно, нет. На самом деле достаточно просто расширить изображение еще немного, чтобы итоговый размер изображения был полностью пропорционален панорамному (или шире), тогда изображение будет сначала уменьшено, а весь верх и низ влезет в пазл.
Ну а если нельзя обрезать по бокам? Тогда нужно увеличивать изображение вширь. В итоге, я все таки взяла листок бумаги, эксель и подсчитала необходимые размеры для разных вариантов необходимой обрезки. Все результаты в самом начале этой записи.
Трудяжечка! 
Сей трактат нужно прочесть несколько раз отмечает в закладки.
Кстати, вы ничего не пишете? Такому стилю можно только позавидовать!
Всхохотамши под лавкою, как говорится...
Да, и вот кто на самом деле согнул ложку ;)
http://coub.com/view/cparp
Бывает пишу всякое разное
Когда вдруг нападает вдохновение - пишу хорошо. Без оного пишу хуже, но опыт уже имеется, так что не совсем плохо получается.
Да и благо, что вдохновение нападает частенько, хоть и неожиданно местами, совершенно не задумываясь о наличии у меня дел всяких разных. Бывает едешь в метро и как нападет вдохновение, прям таки со спины атакует, строки сами складываются, текст в голове такой крутится, что ух, хоть стой, хоть падай прямо в вагоне. Но пока до дома добежишь - все, уходит. Не уделишь ей внимание сразу - обижается. Начнешь в телефон писать, будешь задумываться о маленьких кнопочках, обидится, что не о ней думаешь - тоже уходит. А если в блокнот писать - все равно обижается, что отвлекаюсь на мысли о тряске вагона и удержании равновесия. Ну а бывает, что всего лишь посреди рабочего дня нападет. Главное тогда баланс соблюдать и вдохновение не спугнуть и на работе по шапке не получить за то, что все задачи стоят 
Но все равно люблю свою музу, хоть и обидчивая она у меня. И она меня любит. Посещает, помогает тексты всякие разные писать 
СПАСИБО!!! Очень нужная информация! 

Правда, мне ее надо очень скрупулезно разложить в мозгу "на пиксели", чтобы было меньше иллюзий при разборке чужих и добавлении своих пазлов 
Очень интересно, спасибо! Для меня это выглядит как суперспособности какие-то - разглядеть эти все искажения от уменьшения. Мне бы, наверное. понадобилось просмотреть большое количество реальных примеров с пояснениями, чтобы научиться так распознавать.
Примеры, примеры... Я нашла недавний: https://grandgames.ru/puzzle/online/kot_i_gazeta
Я там как раз говорила про цветовую гамму. Когда смотрю немного издали на картинку - котик как будто седее стал по сравнению с оригиналом. А мне понравился этот котик.
Обработала котика так, как считаю нужным, но без добавления в каталог (только для друзей): https://grandgames.ru/puzzle/online/kot_i_gazeta_59cabd2dc101a . Можно открыть исходное изображение и сравнить с тем вариантом, как было и как стало. Правда, я не только уменьшала. Я еще немного снизила светимость шерсти и наложила слабое гауссово размытие на всю площадь. Зато значительно ближе к оригиналу, чем было. Ну, то есть, пол часа-час танцев с бубном и изображение становится шик, блеск, красота 
Да, картинка класс получилась! А я на большее, чем сделать картинку поярче, посветлее или поконтрастнее не способна 
Когда оцениваешь степень влияния сжатия - и нужно оригинал открывать. Тогда видно - это автор такими жесткими линиями рисует, или уменьшение попортило изображение. По мне, так смысл отсеивания картин по этому пункту не в том, чтобы сказать "нам этого не надо", а в указании на перезалив с обработкой, чтобы заметно улучшить качество изображения. Ведь 2 одинаковых пазла заливать нельзя, даже если второй в лучшем качестве.
Сделать картинку поярче, посветлее или поконтрастнее - это уже многое
) Где-то в фильтрах ещё должно быть размытие - Гауссово размытие. При уменьшении, если картина получается слишком резкой - можно попробовать размыть (но совсем немного).
Всем привет! 
Пришла "поразмышлять о качестве пазлов" 
В частности последние - Цветные полосы и радужные волны
https://grandgames.ru/puzzle/online/tsvetnie_polosi_1
https://grandgames.ru/puzzle/online/raduzhnie_volni
Мне они кажутся уж слишком "пиксельными", ребристыми. По совету Полины пошла смотреть оригинал - на нем все смотрится отлично, особенно заметна разница в качестве Цветных полос.
А как думают остальные?
Кстати, Полина, приношу тебе благодарность за "ликбез" по оптимальным размерам загружаемых пазлов!



Уже несколько картинок, которые когда-то отложила, после приведения к этим самым размерам - получились вполне сносными и даже успешно прошли модерацию! 
Смотреть размер оригинала нужно, чтобы оценить исходный размер. Если размер велик - то значит снижение качества скорее всего из-за уменьшения сайтом.
Я рада, что вычиления были не зря 

Извини, не поняла, что все-таки из этого следует? Исходная картинка нормальная, искажение получилось при сжатии. Надо ее пропустить или отклонить по п.1 и порекомендовать автору уменьшить картинку и перезалить?
"Радужные волны" - это мои.
https://grandgames.ru/puzzle/online/raduzhnie_volni
Оригинал, загруженный с компа, по ширине составляет около 1920 (не помню точно, но не больше).
И вот в чём прикол: если нажать на лупу и посмотреть на исходную картинку, всё красиво и гладко.
А если открыть предпросмотр пазла, то на изгибах волн видны небольшие устыпы (при этом на панорамном они вроде меньше).
И вот вопрос: это всё просто искажения восприятия или картинку при загрузке таки поглючило и её нужно отклонить?
Я в первую очередь ориентируюсь на высоту - 800 или чуть больше. Загружала для примера оригинал и уменьшенный вариант - разница существенная. Теперь почти все картинки перед загрузкой так обрабатываю 
Радужные волны тоже ребрят, но не так критично, как полосы. Эх, пойду против течения, пойду поставлю минус, по крайней мере совесть будет чистая 
Чем больше изображение - тем сильнее оно будет калечиться при загрузке на сайт. Если перед загрузкой уменьшить самостоятельно, то уступы будут меньше. В панорамном уступы меньше, т.к сайту пришлось уменьшать картину не так сильно, как при других размерах.
Мы вот тут все рассуждаем о размере, а народ это не видит и продолжает вешать гигантские размеры , Река Рог 3004х1999 грубое сжатие , может все таки как то статью опубликуем (не факт что ее прочитают) .
Продолжал, продолжает, и будет продолжать 
Я сейчас в отпуске, ещё первая неделя из трех не закончилась, так что пока я ничего не напишу. Как приеду - скорее всего меня по работе завалят, а в свободное время парень таки затребует дописать тот хитрый javascript скрипт, который я начала писать, но не закончила. Когда все это пройдёт - уже можно подумать о статье
Вообще, этот блог и задумывался, как нечто, что в итоге превратится в статьи (с учётом всех замечаний и дополнений).
Добрый вечер! Обновление информации (или даже перечеркивание и вычеркивание).
В будущем @Memo планирует таки улучшить этот несчастный алгоритм уменьшения, что он не будет выдавать таких косяков (и все пазлы будут переработаны). При этом в том же будущем понадобятся загруженные изображения бОльших размеров (которые указаны в рекомендуемых). Просьба не рубить большие изображения в модерации.
Спасибо за подробную и понятную статью! Сразу почему-то её не заметила. Ознакомилась для общего развития, очень интересно. 
в языке на котором сайт написан есть стандартный функционал по сжатию изображений. чтобы его сделать более оптимальным, нужно полностью писать переписывать с нуля эти механизмы. это долго, нудно, и с трудом поддается тесту. учитывая что 99% людей даже не замечают не только этих искажений, а даже более существенных, то это не является приоритетной задачей. это не сказывается негативно на посещаемости раздела.
для неконяш, если интересно, это обычная функция imagecopyresampled http://www.php.su/imagecopyresampled чтобы ее написать лучше чем разработчики php, нужно приложить большие усилия, пока несопоставимые с полученной пользой








