Войти
⎕ ⍆
X

Здравствуй блог...

nekonyash 37
! #190912   2017-09-26 14:40
Здравствуй блог, я открываю рубрику «размышления о качестве пазлов». Тема на сегодня - уменьшение и обрезка изображений.
Я начну с самого-самого конца, чтобы информацию, которая нужна, не приходилось искать. Итак, математически вычисленные (как пафосно-то звучит) оптимальные размеры загружаемых изображений для того, чтобы сайт по минимуму уменьшал пазлы, внося резкость границ:
Для просто горизонтальных - 1067+ х 800 (плюс означает «и более», то есть картина 2000х800 загрузится в том же качестве, что и 1067х800).
Для просто вертикальных наоборот - 800 х 1067+.
Для просто панорамных - 1600+ х 800.

Если нужна обрезка только по бокам:
Горизонталь + вертикаль - 1067+ х 800.
Остальные комбинации (ГП, ВП, ГВП) - 1600+ х 800.

Если нужна обрезка только сверху и снизу:
Горизонталь + вертикаль - 800 х 1067+.
Горизонталь + панорамный - 1200 х 900+ (у горизонтального качество будет немного хуже, чем в остальных вариантах).
Вертикаль + панорамный или комбинация всех трех - 1200 х 1600+, но в вертикали тогда качество может заметно просесть.

Смешанная обрезка, когда изображение в одном варианте обрезается по бокам, в другом сверху/снизу. Тут везде можно немного изменять пропорции, чтобы отрегулировать, где больше отрезать, а где меньше:
Горизонталь + вертикаль - 800 х 800.
Остальные комбинации (ГП, ВП, ГВП) - 1200+ х 800.

Про то, как уменьшить изображение вручную до необходимых размеров под спойлером:
SPOILER
Чтобы получить необходимые размеры, нужно взять какой-нибудь редактор изображений с функциями уменьшения и обрезки, например photoshop (популярный) или gimp (полностью бесплатный).
1. Если в изображении присутствуют лишние элементы, надписи и что-то, что не должно попасть в пазл (правда, если это что-то стоит по центру, то я тут не помогу, лучше выбрать другую картинку) - нужно сделать обрезку изображения, то есть отрезаем все нежелательные области, оставляя только полезную площадь.
В моем gimp это кнопки «кадрирование» в инструментах и «размер холста» в меню «Изображение»:
-

Удобнее использовать кадрирование, там можно ручками выделить полезную область и не мучиться с цифрами нужного размера.
2. Уменьшаем изображение с сохранением пропорций. После этого пункта в картине останется все, что было до этого, но все станет пропорционально меньше. Например, у меня есть изображение 1920х1080, я хочу уменьшить его до 1200х800 не меняя пропорции. Так как моя исходное изображение вряд ли имеет точно те же пропорции, то мне нужно уменьшить либо до 1200х?, либо ?х800. Я включаю режим «сохранение пропорций» и вписываю в ширину 1200, после того, как я перемещаю курсор на поле высоты и там автоматом появляется цифра - 675. 675 - это меньше, чем требуемое нам 800, что означает, что я не смогу сделать желаемую высоту. Значит ввожу в высоту 800, получаю ширину 1422, что меня устраивает.
В gimp кнопка лежит в меню «Изображение» и называется «Размер изображения»:
-

3. Снова обрезаем изображение уже до точного желаемого размера. В этом случае удобнее инструмент «размер холста», так как позволяет указать точные размеры, в отличии от кадрирования, где руками выделяешь область на изображении.


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

Если взять мягкую кисточку и провести линию - она будет выглядеть гладкой, что может даже показаться, что пикселей тут нет, это ровная линия. На самом деле это иллюзия. Все те же пиксели, только в нужных местах они имеют не основной цвет линии, а смешанный с фоном цвет, за счет чего создается эффект плавного перехода, который наши глаза и мозг воспринимают как ровную линию.
SPOILER
Чтобы достичь такого эффекта, можно применить следующий метод: сначала рисуется ровная линия нужной толщины поверх сетки пикселей (для наглядности все увеличивается). Потом вычисляется, сколько процентов линии попадает в каждый пиксель. Ровно на столько процентов, на сколько линия попадает в этот пиксель и будет закрашена область. В случае черного цвета на белом фоне вычисляется промежуточное значение между белым (0% линии попало в пиксель) и черным (100% линии).


Так, когда мы разобрали, что линий (да и ложки) не существует, все лишь иллюзия, созданная для обмана нашего мозга, можно перейти непосредственно к уменьшению изображения и алгоритмы интерполяции (т.е. уменьшения изображения компьютером). Я их хорошо, с примерами с участием исходного пазла умудрилась описать здесь: https://grandgames.net/puzzle/online/starinnaya_ulochka#id176667
Если присмотреться к примерам - то можно увидеть, как от худшего алгоритма сжатия происходит разрушение иллюзии - вместо плавной, немного размытой линии видны те самые «пиксели». И чем больше было исходное изображение, тем сильнее этот эффект.
Но в некоторых исходных изображениях можно увидеть эти самые резкие линии, даже без уменьшения. Ну, бывает, что так рисует автор - ему нужна была жесткая линия без плавного перехода. Или бывает, что на контрастной фотографии некоторые линии выглядят жесткими. Стоит учитывать это, поэтому оценивая качество по параметру «снижение качество от уменьшения изображения», открывайте исходник (при помощи кнопки:
-
). Если исходник огромный, а в пазле наблюдается изменение контрастности, цветовой гаммы, все плавные линии становятся жесткими, и сильно меняется характер изображения - можно отклонять. Если исходник не сильно больше, присутствуют жесткие линии, не поменялась контрастность и цветовая гамма - то стоит все таки подумать, действительно ли тут подходит этот пункт? Можно ли было сделать это изображение лучше, загрузив меньший вариант?
По поводу изменения цветовой гаммы. Примеров не дам, они не прошли модерацию. Уменьшение по факту не меняет цветовой гаммы. Но, дело в том, что изображение проходит обработку мозгом, прежде чем мы скажем «хм, в этой картине я вижу экспрессивные оттенки черного золота» (или, скорее, что-то менее бредовое). Мозг воспринимает белый цвет «больше», чем черный. И все светлые оттенки визуально больше, чем темные части изображения. Когда у линии на границе между белым и черным пропадает плавность, то начинает казаться, что белого стало больше, чем было. Из-за этого может появиться иллюзия, что изображение стало в некоторых местах более светлое, чем было. Лично мне кажется, что когда появились такие эффекты - лучше не допускать пазл в каталог, ведь цветовая гамма - важная часть восприятия единой картины, а ее искажение отдаляет от исходного замысла автора и исходного изображения.

Так, я разобрала теорию и модерацию. Перехожу к разделу «Ну и как нам с этим жить?».
Из того, что при уменьшении изображения ухудшается качество, можно сделать вывод, что нужно загружать изображение минимальных возможных размеров. Скажем, итоговый размер горизонтального пазла - 800х600. Тут можно было бы потереть ручки, сказать «ну все просто, уменьшаем до 800х600 и вообще никаких искажений!», но самый-самый минимальный размер загружаемого изображения 800х800. То есть, сайт просто не пустит картину меньшего размера. Ну ладно. Ну ладно, можно ведь загрузить изображение 1200х800 и сделать сразу все 3 ориентации пазла (горизонтальную 800х600, вертикальную 600х800 и панорамную 1200х600), как раз все идеально вписывается для каждой из ориентаций. Но при попытке загрузить пазл мы можем встретиться с особенностью - для вертикального и горизонтального варианта обрезка будет происходить по бокам, а для панорамного пазла - сверху и снизу. Я нарисовала как все обрезается это от руки:
-

Черными уголками обозначена исходная область 1200х800, черная рамка - вертикальные, синяя рамка - панорамные, синяя штрихами рамка - горизонтальное.
Но если в нашем пазле во весь рост стоит девушка в центре картины и обрезка сверху/снизу ужаснейшим образом нарушает всю синергию изображения, то
такой вариант точно не подходит. Что делать? Полностью отказываться от всех трех ориентаций на не абстрактных пазлах? Конечно, нет. На самом деле достаточно просто расширить изображение еще немного, чтобы итоговый размер изображения был полностью пропорционален панорамному (или шире), тогда изображение будет сначала уменьшено, а весь верх и низ влезет в пазл.
Ну а если нельзя обрезать по бокам? Тогда нужно увеличивать изображение вширь. В итоге, я все таки взяла листок бумаги, эксель и подсчитала необходимые размеры для разных вариантов необходимой обрезки. Все результаты в самом начале этой записи.

Нравится + 4     28
nettaly 52  2017-09-26 15:48 + 2
Трудяжечка! rose
Сей трактат нужно прочесть несколько раз *отмечает в закладки*.
Кстати, вы ничего не пишете? Такому стилю можно только позавидовать!

"линий (да и ложки) не существует"

Всхохотамши под лавкою, как говорится...

Да, и вот кто на самом деле согнул ложку ;)
http://coub.com/view/cparp


olenenok 50 Solver Rank  2017-09-26 15:50 + 2
Да Трактат впечатлил , особенно раздел «Ну и как нам с этим жить?».
Спасибо rose
nekonyash 37  2017-09-26 16:13 + 1
Бывает пишу всякое разное :) Когда вдруг нападает вдохновение - пишу хорошо. Без оного пишу хуже, но опыт уже имеется, так что не совсем плохо получается.
Да и благо, что вдохновение нападает частенько, хоть и неожиданно местами, совершенно не задумываясь о наличии у меня дел всяких разных. Бывает едешь в метро и как нападет вдохновение, прям таки со спины атакует, строки сами складываются, текст в голове такой крутится, что ух, хоть стой, хоть падай прямо в вагоне. Но пока до дома добежишь - все, уходит. Не уделишь ей внимание сразу - обижается. Начнешь в телефон писать, будешь задумываться о маленьких кнопочках, обидится, что не о ней думаешь - тоже уходит. А если в блокнот писать - все равно обижается, что отвлекаюсь на мысли о тряске вагона и удержании равновесия. Ну а бывает, что всего лишь посреди рабочего дня нападет. Главное тогда баланс соблюдать и вдохновение не спугнуть и на работе по шапке не получить за то, что все задачи стоят :D
Но все равно люблю свою музу, хоть и обидчивая она у меня. И она меня любит. Посещает, помогает тексты всякие разные писать :)
Tane4ka 48  2017-09-26 22:13 + 3
СПАСИБО!!! Очень нужная информация! roseroserose Правда, мне ее надо очень скрупулезно разложить в мозгу "на пиксели", чтобы было меньше иллюзий при разборке чужих и добавлении своих пазлов :D
Gerannika 31  2017-09-26 22:48 + 2
Очень интересно, спасибо! Для меня это выглядит как суперспособности какие-то - разглядеть эти все искажения от уменьшения. Мне бы, наверное. понадобилось просмотреть большое количество реальных примеров с пояснениями, чтобы научиться так распознавать.
nekonyash 37  2017-09-26 23:56 + 0
Примеры, примеры... Я нашла недавний: https://grandgames.net/puzzle/online/kot_i_gazeta
Я там как раз говорила про цветовую гамму. Когда смотрю немного издали на картинку - котик как будто седее стал по сравнению с оригиналом. А мне понравился этот котик.
Обработала котика так, как считаю нужным, но без добавления в каталог (только для друзей): https://grandgames.net/puzzle/online/kot_i_gazeta_59cabd2dc101a . Можно открыть исходное изображение и сравнить с тем вариантом, как было и как стало. Правда, я не только уменьшала. Я еще немного снизила светимость шерсти и наложила слабое гауссово размытие на всю площадь. Зато значительно ближе к оригиналу, чем было. Ну, то есть, пол часа-час танцев с бубном и изображение становится шик, блеск, красота :D
olenenok 50 Solver Rank  2017-09-27 00:03 + 0
А что не в каталог то, столько трудов положено. Я считаю он достоин того.
Gerannika 31  2017-09-27 00:48 + 1
А вот я бы без сравнения с оригиналом вообще никаких недочётов не заметила...
Tane4ka 48  2017-09-27 01:29 + 1
Да, картинка класс получилась! А я на большее, чем сделать картинку поярче, посветлее или поконтрастнее не способна :)
nekonyash 37  2017-09-27 09:20 + 2
Когда оцениваешь степень влияния сжатия - и нужно оригинал открывать. Тогда видно - это автор такими жесткими линиями рисует, или уменьшение попортило изображение. По мне, так смысл отсеивания картин по этому пункту не в том, чтобы сказать "нам этого не надо", а в указании на перезалив с обработкой, чтобы заметно улучшить качество изображения. Ведь 2 одинаковых пазла заливать нельзя, даже если второй в лучшем качестве.

Сделать картинку поярче, посветлее или поконтрастнее - это уже многое :)) Где-то в фильтрах ещё должно быть размытие - Гауссово размытие. При уменьшении, если картина получается слишком резкой - можно попробовать размыть (но совсем немного).
Tane4ka 48  2017-10-09 23:39 + 2
Всем привет! :)
Пришла "поразмышлять о качестве пазлов" :)
В частности последние - Цветные полосы и радужные волны
https://grandgames.net/puzzle/online/tsvetnie_polosi_1
https://grandgames.net/puzzle/online/raduzhnie_volni
Мне они кажутся уж слишком "пиксельными", ребристыми. По совету Полины пошла смотреть оригинал - на нем все смотрится отлично, особенно заметна разница в качестве Цветных полос.
А как думают остальные?

Кстати, Полина, приношу тебе благодарность за "ликбез" по оптимальным размерам загружаемых пазлов!roseroseroseroserose Уже несколько картинок, которые когда-то отложила, после приведения к этим самым размерам - получились вполне сносными и даже успешно прошли модерацию! :)
nekonyash 37  2017-10-10 02:58 + 1
Смотреть размер оригинала нужно, чтобы оценить исходный размер. Если размер велик - то значит снижение качества скорее всего из-за уменьшения сайтом.
Я рада, что вычиления были не зря roserose
Tane4ka 48  2017-10-10 10:09 + 1
Извини, не поняла, что все-таки из этого следует? Исходная картинка нормальная, искажение получилось при сжатии. Надо ее пропустить или отклонить по п.1 и порекомендовать автору уменьшить картинку и перезалить?
nettaly 52  2017-10-10 12:22 + 0
"Радужные волны" - это мои.
https://grandgames.net/puzzle/online/raduzhnie_volni

Оригинал, загруженный с компа, по ширине составляет около 1920 (не помню точно, но не больше).
И вот в чём прикол: если нажать на лупу и посмотреть на исходную картинку, всё красиво и гладко.
А если открыть предпросмотр пазла, то на изгибах волн видны небольшие устыпы (при этом на панорамном они вроде меньше).
И вот вопрос: это всё просто искажения восприятия или картинку при загрузке таки поглючило и её нужно отклонить?
Tane4ka 48  2017-10-10 14:33 + 1
Я в первую очередь ориентируюсь на высоту - 800 или чуть больше. Загружала для примера оригинал и уменьшенный вариант - разница существенная. Теперь почти все картинки перед загрузкой так обрабатываю :)
Радужные волны тоже ребрят, но не так критично, как полосы. Эх, пойду против течения, пойду поставлю минус, по крайней мере совесть будет чистая :D
nettaly 52  2017-10-10 15:27 + 0
drinks
nekonyash 37  2017-10-10 15:58 + 1
Чем больше изображение - тем сильнее оно будет калечиться при загрузке на сайт. Если перед загрузкой уменьшить самостоятельно, то уступы будут меньше. В панорамном уступы меньше, т.к сайту пришлось уменьшать картину не так сильно, как при других размерах.
nettaly 52  2017-10-10 16:43 + 0
rose
olenenok 50 Solver Rank  2017-10-12 14:34 + 2
Мы вот тут все рассуждаем о размере, а народ это не видит и продолжает вешать гигантские размеры , Река Рог 3004х1999 грубое сжатие , может все таки как то статью опубликуем (не факт что ее прочитают) .
nekonyash 37  2017-10-12 14:40 + 1
Продолжал, продолжает, и будет продолжать :D
Я сейчас в отпуске, ещё первая неделя из трех не закончилась, так что пока я ничего не напишу. Как приеду - скорее всего меня по работе завалят, а в свободное время парень таки затребует дописать тот хитрый javascript скрипт, который я начала писать, но не закончила. Когда все это пройдёт - уже можно подумать о статье :) Вообще, этот блог и задумывался, как нечто, что в итоге превратится в статьи (с учётом всех замечаний и дополнений).
olenenok 50 Solver Rank  2017-10-12 15:08 + 1
А простите, хорошего тебе отдыха. Тогда просто продолжаем ставить минусы. :)
nekonyash 37  2017-10-12 16:36 + 1
Спасибо :)
nekonyash 37  2018-01-06 15:56 + 2
Добрый вечер! Обновление информации (или даже перечеркивание и вычеркивание).
В будущем @Memo планирует таки улучшить этот несчастный алгоритм уменьшения, что он не будет выдавать таких косяков (и все пазлы будут переработаны). При этом в том же будущем понадобятся загруженные изображения бОльших размеров (которые указаны в рекомендуемых). Просьба не рубить большие изображения в модерации.
Sakara 47 Solver Rank  2018-01-06 19:00 + 0
Спасибо за подробную и понятную статью! Сразу почему-то её не заметила. Ознакомилась для общего развития, очень интересно. good
nettaly 52  2018-01-06 21:55 + 1
Приняла к сведению и очень рада, что алгоритм будет переработан :)
Memo 45  2018-01-07 19:22 + 0
в языке на котором сайт написан есть стандартный функционал по сжатию изображений. чтобы его сделать более оптимальным, нужно полностью писать переписывать с нуля эти механизмы. это долго, нудно, и с трудом поддается тесту. учитывая что 99% людей даже не замечают не только этих искажений, а даже более существенных, то это не является приоритетной задачей. это не сказывается негативно на посещаемости раздела.
Memo 45  2018-01-07 19:25 + 1
для неконяш, если интересно, это обычная функция imagecopyresampled http://www.php.su/imagecopyresampled чтобы ее написать лучше чем разработчики php, нужно приложить большие усилия, пока несопоставимые с полученной пользой
Aibert201827301 1  2018-07-14 12:52 + 0
Молодец!!!!!!!!vverhvverhvverhvverhvverhvverhvverhvverhvverhvverhvverhvverhvverhvverhvverhvverhvverhvverhvverhgoodgoodgoodgoodgoodgoodignatignatignatignatignatignatignatugarugaraplodaplodaplodaplodaplodaplodaplodaplodaplodaplodАплодисменты!!!!!
:)
Вернуть свернутое окно