изображения какой графики масштабируются c потерей качества

Растровая и векторная графика

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества

Давайте попробуем разобраться, в чём отличие растровой графики от векторной?

Растровая графика

Растровое изображение, как мозаика, складывается из множества маленьких ячеек — пикселей, где каждый пиксель содержит информацию о цвете. Определить растровое изображение можно увеличив его масштаб: на определённом этапе станет заметно множество маленьких квадратов — это и есть пиксели.

Наиболее распространённые растровые форматы: JPEG, PNG.

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваРастровое изображение и его увеличенный фрагмент

Применение

Растровая графика удобна для создания качественных фотореалистичных изображений, цифровых рисунков и фотографий. Самый популярный редактор растровой графики — Adobe Photoshop.

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваПример использования растровой графики: цифровой рисунок (автор изображения: Катя Климович) изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваПример использования растровой графики: фотография

Преимущества

Недостатки

Векторная графика

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

Самые популярные векторные форматы: SVG, AI.

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваВекторное изображение и его увеличенный фрагмент

Применение

Векторная графика используется для иллюстраций, иконок, логотипов и технических чертежей, но сложна для воспроизведения фотореалистичных изображений. Самый популярный редактор векторной графики — Adobe Illustrator.

Преимущества

Недостатки

Мы приходим к выводу, что не существует «серебряной пули»: и растровая, и векторная графика имеют свои достоинства и недостатки, соответственно, стоит выбирать формат, который подходит для решения поставленных перед вами задач.

Подробнее про форматы можно посмотреть в статье «Форматы изображений».

Целая глава о графике

Нажатие на кнопку — согласие на обработку персональных данных

Источник

Графика

Растровая графика

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества

Достоинства растровой графики:

Недостатки растровой графики

Форматы растровой графики

Не смотря на кажущуюся простоту представления растровой графики, ее форматов существует «вагон и маленькая тележка»! И их количество продолжает меняться — какие‑то форматы устаревают, какие‑то только начинают разрабатываться. Описывать все — долго и не интересно, я опишу только те, которые, на мой взгляд, могут быть интересны дизайнерам и фотостокерам.

GIF(Graphics Interchange Format) если не самый популярный, то уж точно второй по популярности формат растровой графики, используемый для публикации изображений в WEB. Хотя некоторые называют его «устаревшим», альтернативы ему пока нет. Дело в том, что это фактически единственный растровый формат графики, поддерживающий анимацию. На данный момент, на сколько мне известно, существует еще 2 формата с анимацией — MNG и APNG, которые, вероятно и заменят GIF, но пока их поддерживают далеко не все браузеры и графические редакторы.

Преимущества формата GIF:

PNG(Portable Network Graphics) — еще один формат растровой графики, поддерживающий прозрачность, причем не только обычную прозрачность, как GIF, но и полупрозрачность — плавный переход цвета в прозрачную область. Целью создания PNG как раз и была замена GIF, так как компания CompuServe — разработчик формата GIF в 1995 году на 10 лет запатентовала алгоритм сжатия, использованный при создании gif-картинок, что делало невозможным бесплатное использование данного формата в коммерческих проектах.

Недостатка у PNG, на мой взгляд, всего 2:

TIFF(Tagged Image File Format) — формат для хранения изображений высокого качества, поддерживает любые из существующих цветовые модели, обеспечивает широкий диапазон изменения глубины цвета, поддерживает работу со слоями. Хранение информации в формате TIFF возможно как с потерями, так и без потерь. Фотокамеры, не поддерживающие RAW-формат иногда могут делать снимки в формате TIFF.

На фотобанки, у которых есть возможность загружать дополнительные форматы к основному изображению в формате JPEG (Dreamstime.com, iStock.com) в качестве дополнительного можно загружать TIFF.

Недостатком формата является большой вес файла, гораздо бОльший, нежели файл RAW-формата такого же качества — каждый снимок в TIFF весит от 8 до 20Мб.

RAW(в переводе с английского «raw» — сырой)

Формат RAW появился благодаря цифровым фотоаппаратам. RAW — это по‑сути «отпечаток», который остается на матрице фотоаппарата в момент съемки, а точнее целых 3 отпечатка — в красном, зеленом и синем цветах. Кроме этих отпечатком в RAW-файле хранятся и некоторые другие данные, которые в подобном случае носят скорее справочный характер, диктующие RAW-конвертеру с какой интерсивностью отразить на экране каждый из цветных каналов для разных пикселов — это балланс белого, цветовое пространство и т.д. Изменение этих параметров никак не отразится на исходной информации, вы можете их безболезненно изменить и в любой момент вернуться к первоначальному виду. С полученным в результате экспорта другим растровым форматом работать будет уже гораздо проблематичнее. Расширения у файлов в формате RAW могут быть разные (.cr2,.crw,.nef и т.д.) в зависимости от марки фотоаппарата — у каждого производителя камер свой способ хранения информации. Для редактирования RAW-файлов и преобразования их в другие растровые форматы производители камер поставляют свой собственный софт и при этом RAW-конвертер фирмы Canon будет читать только RAW-файлы снятые фотоаппаратами Canon (.cr2,.crw) и не сможет прочитать RAW-файл снятый фотоаппаратом Nikon (.nef). Существуют RAW-конвертеры сторонних производителей, которые работают с большинством RAW-файлов. В общем, отсутствие единого стандарта создает определенные неудобства при работе с этим форматом.

Недостатками формата являются большой размер файла (хотя и не такой большой, как TIFF) и отсутствие единого стандарта формирования RAW-файлов для всех производителе й фототехники.

RAW как и TIFF можно отправлять на фотобанки в качестве «дополнительного» формата изображения — наличие исходникаможет повлиять на решение дизайнера о покупке изображния.

JPEG (Joint Photographic Experts Group — название разработчика) — самый распространенный формат растровой графики (по крайней мере — в Интернете). JPEG — пример использования алгоритмов сжатия «с потерями» или, по‑другому, «искажающего сжатия», он наиболее подходит для хранения картин, фотографий и других реалистичных изображений с плавными цветовыми переходами, но зато практически не пригоден для чертежей и схем, то есть для изображений с резкими переходами — алгоритм сжатия будет образовывать заметные артефакты в местах резкого контраста.

Не рекомендуется хранить в этом формате промежуточные варианты работы — каждое «пересохранение» будет вести к необратимой потере части информации. Алгоритм сжатия, используемый в этом формате (lossy compress) основан на «усреднении» цвета рядом стоящих пикселов.

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

Формат JPEG — так же основной формат, в котором фотобанки принимают растровые изображения(фотографии и иллюстрации) для продажи. Сохранять конечный вариант файла, отправляемый на микросток, нужно в цветовой модели RGB, разрешением 300dpi и, конечно, в 100%-м качестве. Так же можно вписать в файл IPTC-информацию (название, описание, ключевые слова) — формат JPEG позволяет это сделать и это значительно сэкономит вам время при отправке изображений на несколько фотобанков.

Кроме общих форматов растровой графики (GIF, JPEG, TIFF и др.), которые «читаются» всеми графическими редакторами и просмотровщиками изображений, существуют «родные» форматы почти каждого редактора, которые можно открыть только программой, в которой они были сделаны, например, формат.PSD программы Adobe Photoshop. При обработке фотографий, растровых иллюстраций и разработке дизайна, промежуточные варианты следует сохранять в таких форматах и только финальные версии переводить JPEG. Это нужно для того, чтобы можно было сохранять результаты работы без потери информации и в любой момент внести изменения в изображение или проект.

Источник

Изображения: форматы и сжатие (1/3)

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества

На что при загрузке сайта расходуется больше трафика? Чаще всего это картинки, и их суммарный «вес» частенько в несколько раз больше, чем у разметки, скриптов и стилей. В файлах изображений распространенных форматов растровые данные хранятся в сжатом виде, и это значительно лучше, чем несжатый BMP. А если хочется ещё лучше? Ведь в достаточно крупных проектах каждый байт на счету (например, в TradingView, чего уж там скромничать).

Существует множество утилит для пережатия графики, от узкоспециализированных до всемогущих комбайнов. На хабре уже есть замечательный обзор таких программ, и вопрос, чем можно пережать картинку, рассмотрен более, чем детально.

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

Средневековье

Восьмидесятые годы прошлого столетия стали временем становления растровой графики. Графика как таковая применялась и раньше, но теперь она стала гораздо более доступна, и не в последнюю очередь на неё повлияла игровая индустрия. Atari 2600 позволяла рисовать нечто более изысканное, чем белый прямоугольник. А Commodore 64 обладал видеопамятью, с настоящими пикселями, и работать с ним было удобнее, чем «переключи цвет не позже 31415-го такта».

Но некоторые из редакторов переросли детский возраст и стали весьма удобным и полезным инструментом. Так в 1984 появился PCPaint, в котором можно было рисовать при помощи мыши. Помимо очевидных удобств пользовательсого интерфейса PCPaint давал еще одно преимущество. Дело в том, что дамп BSAVE не включал данных о размере изображения, глубине цвета и палитре, и если видеорежимов было немного (да и цветное изображение вменяемо показывалось в черно-белом режиме) то для палитры приходилось использовать отдельный файлик PAL. В формате PIC редактора PCPaint содержались и палитра, и дамп BSAVE. Это маленький шаг для программиста и гигантский скачок для всего человества. Что-то вроде «а давайте придумаем формат MKV, в котором субтитры можно будет хранить внутри, и чтобы не нужно было их в нужную папочку класть».

И в TGA, и в PCX данные о размере изображения и палитре хранились в явном виде, без сильной привязки к железу. Это стало возможным, потому как пиксельные данные перестали зависеть о конкретной платформы и представляли из себя просто сканлайны: слева направо, сверху вниз.

Но была ещё одна важная особенность у этих двух форматов, растровые данные в них хранились в сжатом виде. Применяемый алгоритм RLE не был верхом эффективности, но это было уже весьма неплохо.

RLE (Run length encoding) достаточно простой алгоритм, но он хорошо показывает, как работает сжатие данных. Сжать данные без потерь означает, избавиться от избыточности в них. Для этого берем набор данных, находим в них цепочки повторяющихся значений и заменяем их на нечто более компактное.

Обычно RLE переводят как «кодирование длин серий», и такие повторяющиеся значения именуют «серии». И хотя мне больше по душе перевод «прогон», ничего не могу поделать, это уже устоявшися термин.

Скорее всего, Вы уже пользуетесь им. Посмотрим на строку « AAAAAAAAAAAABBBAAAAAAAAA ». Если нам придется продиктовать её по телефону, то это будет звучать как «двенадцать заглавных букв A, три заглавные B, девять заглавных A». Если записать это, получится « 12 A 3 B 9 A », а чтобы не было разночтений, то « 9 A 3 A 3 B 9 A ». Гораздо компактнее.

Возьмем теперь другую строку, « 0KXQsNCx0YDQsNGF0LDQsdGA », и попытаемся её так сжать. Получится « 1 0 1 K 1 X …», стоп-стоп-стоп! Строка получается вдвое длиннее, чем исходная, это же ни разу не сжатие. Модифицируем алгоритм и добавим к цифрам буквы: буква A означает, что следующий символ пишется «как есть»; если B, то два; если C, то три, и так далее. Выходит « X 0KXQsNCx0YDQsNGF0LDQsdGA ». Итого, в лучшем случае мы получаем сжатие в 350%, а худшем случае мы теряем только 4%.

Разумеется, в реальных условиях кодируются обычно байты, а не буквы латинского алфавита, и длины последовательностей кодируются значениями от 0 до 255. Плюс к тому, обычно бессмысленные значения длин серий игнорируются: в нашем примере 1 и A делают одно и тоже, а 0 вообще смысла не имеет. Но это детали, суть остается одна и та же.

Энтропия

Как бы ни хотелось избежать теории, эта вещь слишком важная, чтобы её игнорировать. Вы заметили, что не все последовательности получается сжать? Строки AAAAAAAAAAAABBBAAAAAAAAA и 0KXQsNCx0YDQsNGF0LDQsdGA одной длины, 24 символа, но во второй эти символы более хаотичны, и её сжать труднее.

Мера такой хаотичности — информационная энтропия, определяется она как количество информации в сообщении.

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества
Мало энтропииБольшеЕще больше

Само наличие информационной энтропии говорит о том, что данные можно сжать только до определенной длины. Дальше никак, магия в процессе не задействована. И если верить Клоду Шеннону, фильм «Клик» до килобайта не сжимается.

Чтобы проиллюстрировать это, обратимся к тому, что на первый взгляд не имеет отношения к IT.

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества

Судоку слева содержит 81 цифру и уже решен. Тот, что посередине, содержит меньше информации, 26 цифр, но решив его, можно восстановить все исходные 81.

А вот с судоку справа все очень плохо — из него удалено слишком много данных, и он уже не решается, т.е., исходный набор данных мы уже не получим.

Но вернемся к PCX и займемся тем, чего уже лет десять никто не делал, создадим файл PCX, причем вручную. Знать свой инструмент нужно, поэтому обратимся с спецификации, и узнаем, что представляет из себя этот формат. Вот основные тезисы:

PCX на практике

Теперь давайте на примере разберем этот шмат технических данных. Возьмем для примера такую вот картинку (17×8, для удобства увеличена в 8 раз):

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества

Определимся с палитрой. В изображении три разных цвета, поэтому нам подходят палитры из 4, 16 и 256 цветов, а также Truecolor. В 4-цветовой палитре у нас будет в одном байте 4 значения (8 бит байта поделить на 2 бита номера в палитре); в 16-цветовой — 2 пикселя на байт; в 256-цветовой — пиксель на байт (плюс 769 байт дополнительной палитры); в Truecolor — три байта на пиксель. Выбор очевиден, 4 цвета.

Цвета расположим, например, так:

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества

Теперь выписываем битовые значения первой строки, начиная со старших битов. Листинг в четверичной системе, разделители — границы байтов.

0000 0000 0000 0000 0

Получается 4,25 байта. RLE с дробными байтами не работает, добиваем до пяти.

0000 0000 0000 0000 0 000

В документации сказано, что в сканлайне должно быть чётное количество байт. Делать нечего, добиваем ещё.

0000 0000 0000 0000 0 000 0000

То же самое проделываем с остальными строками, получаем:

0000 0000 0000 0000 0 000 0000
0111 1111 1111 1111 0 000 0000
0121 2121 2121 2121 0 000 0000
0212 1212 1212 1212 0 000 0000
0222 2222 2222 2222 0 000 0000
0202 0202 0202 0202 0 000 0000
0020 2020 2020 2020 0 000 0000
0000 0000 0000 0000 0 000 0000

Теперь посмотрим, какие значения можно сжать. Отметим только последовательности одинаковых байтов длиннее 2, потому что кодирование серии в 2 байта займет 2 байта, и смысла в этом особого нет.

0000 0000 0000 0000 0 000 0000
0111 1111 1111 1111 0 000 0000
0121 2121 2121 2121 0 000 0000
0212 1212 1212 1212 0 000 0000
0222 2222 2222 2222 0 000 0000
0202 0202 0202 0202 0 000 0000
0020 2020 2020 2020 0 000 0000
0000 0000 0000 0000 0 000 0000

Обратите внимание, что хотя нулевые байты в конце предпоследней строки так и просятся прицепиться к последней строке, этого сделать не получится, границу сканлайна пересекать нелья.
Теперь ход конём. В спецификации нигде не написано, чем именно нужно добивать сканлайны до чётного количества байт. Все равно, эти значения декодер выкинет. Поэтому можем сэкономить аж два байта, сделав вот так:

0000 0000 0000 0000 0 000 0000
0111 1111 1111 1111 0 000 0000
0121 2121 2121 2121 0 000 0000
0212 1212 1212 1212 0 000 0000
0222 2222 2222 2222 0 000 0000
0202 0202 0202 0202 0 202 0202
0020 2020 2020 2020 0 000 0000
0000 0000 0000 0000 0 000 0000

Закодируем получившееся в RLE. Пожалуй, будет удобней перейти к более привычному шестнадцатеричному виду:

00 00 00 00 00 00
15 55 55 55 00 00
19 99 99 99 00 00
26 66 66 66 00 00
2A AA AA AA 00 00
22 22 22 22 22 22
08 88 88 88 00 00
00 00 00 00 00 00

Продолжая подобным образом, получим:

Осталось дописать сверху 128-байтный заголовок и готово! А чтобы полюбоваться на получившееся, можно запустить этот скрипт. Он на node.js, но уверен, на Ваш любимый язык переписать не составит никакого труда.

PCX на практике 2: палитра

Возьмем теперь другое изображение и снова переведем его в PCX, пытаясь максимально сжать. На этот раз картинка поменьше, 7×5.

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества

Это НЛО. Знаю, что не очень похоже.

Перво-наперво, выберем глубину цвета: 2 бита. Это четыре цвета, как раз, сколько нам и нужно. Определяем палитру, например, так:

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества

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

Сырые данныеСжатые данные
0F C0
3A B0
FF FF
D9 9C
3F F0
0F C1 C0
3A B0
C2 FF
C1 D9 9C
3F C1 F0

В случае 0xFF 0xFF нам повезло — там мы драгоценных байт не потеряли. Но в целом выходит унылая картина: теперь RLE вместо того, чтобы помогать, только мешает.

В сторону безысходность, посмотрим, что с этим можно сделать. Маркерами являются байты с двумя старшими битами равными единице, 11XXXXXX. Данные пишутся последовательно, начиная со старшего бита. Зачит, при двухбитной глубине цвета на то, будет ли байт маркером или нет, влияют пиксели по смещению 4×n. А именно, пиксели цвета под номером 3 (в нашем случае, темно-серый).

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества

Вот они, виновники разрастания размеров файла. В третьей строке темно-серые пиксели тоже попадают в выделенные колонки, но погоды они нам не делают: сама строка при кодировании даст два одинаковых байта.

Порядок цветов в палитре мы определяем сами, поэтому выберем в качестве цвета номер 3 тот, который меньше всего встречается по смещению 4×n. Синий — лучший кандидат, он не встречается на таких местах вообще ни разу. Переопределяем палитру и делаем вторую попытку.

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваизображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества

Сырые данныеСжатые данные
0A 80
25 60
AA AA
B7 78
2A A0
0A 80
25 60
AA AA
B7 78
2A A0

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

Итого

Еще раз вкратце техники, помогающие уменьшить вес PCX:

Продолжение следует

Ну вот, пожалуй, и всё. Про TGA я рассказывать не буду, он хоть и отличается от PCX, но сходств гораздо больше, чем отличий. А других прямо уж примечательных графических форматов того времени и не было.

Кроме, конечно же, формата GIF компании CompuServe. В нем мы и покопаемся в следующий раз.

Источник

Растровая и векторная графика: это как?

Есть два вида картинок: в одной миллионы цветов и полный фотореализм; вторую можно увеличивать и уменьшать до бесконечности без потери качества. Вот как это всё работает.

👉 Как и большинство статей в журнале «Код», эта статья для начинающих. Юные Артемии, вам не сюда. Лучше порешайте наши задачки в паблике.

Растровая графика

Растр — это множество мелких точек, из которых может состоять изображение. В случае с компьютером растр — это пиксели, из которых состоит фотография.

Например, когда вы фотографируете на смартфон или цифровой фотоаппарат, вы получаете растровое изображение, которое состоит из множества отдельных точек. Если смотреть на экране телефона или компьютера, они не видны, но если сильно увеличить, то эти точки станут заметны.

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваЧем сильнее увеличим фотографию, тем больше видны пиксели

👉 У растровой графики есть два главных параметра: размер изображения и глубина цвета.

Размер изображения — это количество пикселей по горизонтали и вертикали. Чем больше размер, тем сильнее можно увеличивать картинку без потери качества. Например, возьмём одну и ту же фотографию, но у одной будет размер 100 на 200 пикселей, а у другой — 1000 на 2000 пикселей:

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваВ одном и том же масштабе вторая картинка смотрится гораздо лучше, потому что в ней больше пикселей, которые передают больше деталей

Общее правило такое: чем больше пикселей на фотографии, тем больше мелких деталей можно на ней разглядеть. Именно поэтому производители камер и смартфонов постоянно увеличивают количество пикселей у себя в устройствах.

Глубина цвета. Представьте, что ваша камера в телефоне может различать только 16 цветов. В этом случае фотографии получались бы такими:

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваВ целом понятно, что тут изображено, но выглядит странно

Это и есть глубина цвета — сколько разных оттенков присутствует на изображении. В нашем примере 16 цветов — это 4 бита, потому что 2 в 4 степени = 16. Сравните, как выглядит та же фотография с глубиной цвета 16 и 8 бит:

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваЧем больше глубина цвета, тем плавнее цветовые переходы на фото

Главное применение растровой графики — фотографии и изображения с большой глубиной цвета и множеством деталей. Фотографии — это растр. Рисунки от руки — чаще всего растр. Если на изображении природа, люди, водичка или что угодно со множеством деталей, скорее всего, такое изображение будет растровым.

Компьютеры классно справляются с растровыми изображениями, потому что растр довольно прост в обработке. Компьютер ставит подряд нужное количество пикселей и красит их в нужные цвета. Операция простая, математика минимальная, просто нужно повторить её много раз. Компьютеры в этом сильны.

Векторная графика

В отличие от растровой графики, векторная состоит не из пикселей, а из математических формул. В такой графике каждое изображение нарисовано с помощью отдельных элементов:

Чтобы это нарисовать, у каждого элемента есть свои параметры, например:

Если компьютеру нужно нарисовать звёздное небо, мы можем дать ему такие команды:

В итоге получим такой рисунок:

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваИзбражение: wallpapersafari.com

Так как мы не привязаны к размеру изображения, то по этим формулам компьютер может нам отрисовать звёздное небо любого размера — от обоев на телефон до рекламного билборда 4 на 6 метров. При этом при увеличении потери качества не происходит — компьютер просто получает от нас финальный размер изображения и рисует всё в нужных пропорциях.

👉 Сила векторной графики — в возможности бесконечно увеличивать и уменьшать размер изображения без потери качества. При изменении размера компьютер сразу пересчитывает все формулы и отрисовывает картинку заново. Поэтому при увеличении векторной графики не появляются пиксели и размытие, даже если нам нужно увеличить одну звезду в 100 раз:

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качества

Минус векторной графики в том, что в ней очень сложно создать фотореалистичное изображение. Дело в том, что каждая деталь, каждый новый цвет и каждый цветовой переход — это новая формула. Чтобы построить фотореалистичную картинку, нужно очень много формул, которые будут сложно обсчитываться, и всё равно по деталям можно понять, что перед нами не фотография:

изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваКаждый элемент на этой картинке задаётся своей формулой. Здесь много деталей, но всё равно видно, что это не фотография, а векторная иллюстрация изображения какой графики масштабируются c потерей качества. Смотреть фото изображения какой графики масштабируются c потерей качества. Смотреть картинку изображения какой графики масштабируются c потерей качества. Картинка про изображения какой графики масштабируются c потерей качества. Фото изображения какой графики масштабируются c потерей качестваТо же самое изображение в кривых

Векторная графика чаще всего применяется там, где не нужна фотореалистичность — иконки, пиктограммы, рекламные материалы. Главная задача такого изображения — чтобы его можно было увеличить или уменьшить как угодно без потери качества.

‘ src=’https://thecode.media/wp-content/uploads/2021/01/image9.png’ alt=’Векторная графика’> Иконки — Сергей Чикин

Что дальше

Будем осваивать векторную графику в CSS. Заодно потренируемся наводить красоту на страницах и попрактикуемся в коде.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *