Как пишется графический файл

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

author__photo

Содержание

Если вы выберете для скачивания, сохранения, распечатки и других действий с файлом неправильный формат, то рискуете испортить качество или даже удалить содержимое. При распечатке изображения могут возникнуть сложности из-за выбранного PNG вместо JPG за счет того, что первый поддерживает гораздо меньше цветов. Чтобы при работе с графическими форматами не возникало подобных ситуаций, вам потребуются базовые знания об их разновидностях. 

Рассказываем, какие есть типы графических файлов и для каких целей их использовать. 

Что такое формат графического файла

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

Типы графических форматов

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

  • Растровые изображения — огромная комбинация разноцветных пикселей, которые легко рассмотреть при увеличении картинки. У файлов с изображениями в таком формате большой размер. Качество и «вес» напрямую зависят от количества пикселей. Чем четче и качественнее фото, тем больше памяти оно занимает на устройстве. Запомните числа 72 и 300: разрешение 72 dpi (dots per inch — плотность пикселей) подходит для веб-дизайна, а 300 dpi используют для высококачественной печати.
  • Векторные изображения состоят из опорных точек и кривых линий между ними. Всего этого пользователь не замечает даже при сильном увеличении картинки. Благодаря этому масштабирование происходит без потери качества. Однако такие графические элементы выглядят гораздо проще. 

Есть метафайловые форматы (WPG, Macintosh PICT, CGM), которые хранят данные и растровых, и векторных изображений. Их используют при перемещении гибридных файлов на программных платформах.

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

caltouch-platform

Виджет обратного звонка для сайта

  • Повысьте конверсию сайта на 30%
  • Новым клиентам 50 минут в подарок

Узнать подробнее

platform

Для чего нужны растровые форматы изображений

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

PNG

Portable Network Graphics, или портативная сетевая графика, — удобный формат для размещения файла в электронном документе, если его впоследствии не потребуется распечатывать. PNG совершенно не подходит для полиграфии. 

Пользователи ищут в поисковике изображения именно в PNG, когда для графического элемента не нужен фон.

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

  • прозрачный фон;
  • поддержка более 15 млн цветовых оттенков;
  • совместимость с различными браузерами и ПО;
  • сжатие без больших потерь в качестве.

Недостатки:

  • низкое качество изображения при печати;
  • большой размер файла.

JPEG

Joint Photographic Experts Group, или группа экспертов по фотографии, — так называлось объединение разработчиков самого распространенного формата изображений. Баннеры, материалы для полиграфии в высоком разрешении, картинки из соцсетей, файлы цифровых камер и многие другие электронные графические объекты используют, сохраняют и размещают именно в JPEG. 

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

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

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

Недостаток — сжатие и обработка приводят к потере качества.

GIF

Graphics Interchange Format — формат для обмена графическими данными в виде анимации. Гифка обычно имеет маленький размер, иначе ее загрузка будет длительной, а сам файл займет много памяти и кэша на устройстве. Выглядит GIF как видео без звука или анимированное изображение (значок, иконка, рисунок, текст). 

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

  • альтернатива короткому видеоролику, например скринкасту;
  • совместимость со всеми браузерами;
  • поддержка прозрачности;
  • «оживление» картинки.

Недостатки:

  • цветовая емкость — всего 256 оттенков;
  • несовместимость со многими графическими редакторами.

RAW

Raw в переводе с английского — «сырой». То есть изображение в этом формате никак не обработано и представлено ровно в том виде, в котором было получено с камеры или сканера. «Сырой» файл содержит метаданные оригинального изображения — это особенно ценно для профессиональных фотографов. 

Учитывайте, что файл RAW на разных устройствах будет иметь разные расширения (CR2, NEF или DNG), и для конвертации понадобится специальный сервис, например raw.pics

Если вы только что сделали фото, то после загрузки с фотоматрицы или редактирования оно автоматически поменяет формат с RAW на JPEG. 

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

  • содержание метаданных оригинала;
  • высокое качество.

Недостатки:

  • занимает много памяти устройства;
  • при использовании на разных устройствах требует конвертации;
  • невозможность печати.

TIFF

Tagged Image File Format, или теговый формат, — файл растрового изображения, который можно сжать без потери качества. Даже если вы скопировали, повторно сохранили или изменили размер исходной картинки, — разрешение никак не пострадает. Оригинал возможно восстановить на любом этапе. 

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

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

  • можно сжать без потери качества;
  • после редактирования всегда есть возможность вернуться к оригиналу;
  • поддержка прозрачных и векторных слоев.

Недостатки:

  • большой «вес» файла;
  • несовместимость с устаревшими версиями программ для редактирования.

BMP

Bitmap Picture, или растровое изображение, — высококачественный формат от Microsoft с дополнительными расширениями: dib и rle. Подходит для очень детализированных картинок и фото. Специалисты редко его используют, так как BMP уже устарел, и ему на смену пришли более удобные форматы, например RAW или TIFF. 

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

  • высокое качество;
  • подробная детализация изображения.

Недостатки:

  • большой размер;
  • существенная потеря качества после сжатия;
  • уже не поддерживается многими программами.

PSD

Photoshop Document — это документ (файл), который создают в Adobe Photoshop. Формат подходит для редактирования многослойных, анимированных изображений и видео.

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

  • подходит для векторных и растровых изображений;
  • поддерживает прозрачность;
  • содержит большое количество слоев;
  • легко адаптируется под веб-страницы;
  • подходит для работы с видео и анимацией.

Недостатки:

  • редактируется только в Photoshop;
  • для печати или загрузки в другие программы PSD необходимо переформатировать.

Когда используют векторные форматы 

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

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

SVG

Scalable Vector Graphics, или масштабируемая векторная графика, — идеальный вариант для работы с двухмерными изображениями. Чтобы добавить SVG на сайт, достаточно просто встроить его в html-код. 

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

  • небольшой размер («вес»);
  • подходит для несложной анимации, интерактивных элементов, инфографики или диаграмм;
  • быстро оптимизируется и загружается онлайн.

Недостатки:

  • не поддерживает большое количество цветов и оттенков;
  • не подходит для печати.

PDF

Portable Document Format, или формат переносимых документов, знаком всем, кто работает с электронным документооборотом или часто покупает билеты онлайн. Благодаря PDF можно просмотреть, отправить или отредактировать файл практически с любым содержимым. 

Конвертировать документ в PDF можно с помощью Adobe Illustrator или Adobe Photoshop. 

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

  • готов к печати;
  • легко загрузить, открыть и отправить;
  • внутри файла может быть текст, векторная и растровая графика.

Недостатки:

  • для редактирования подходят только платные программы;
  • иногда невозможно копировать фрагмент содержимого файла.

EPS

Encapsulated PostScript, или инкапсулированный постскрипт, — формат для веб-дизайнеров. Работать с ним получится только в специальных программах, таких как CorelDraw или Adobe Illustrator. 

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

  • удобен для специалистов полиграфии и веб-дизайна;
  • в фотошопе конвертируется в растровый формат.

Недостатки:

  • неуниверсальный формат;
  • не подходит для непрофессиональной печати;
  • совместим далеко не с каждым ПО.

AI

Формат от Adobe Illustrator, с которым работают в основном специалисты веб-дизайна и иллюстраторы.

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

  • возможна комбинация растровой и векторной график;
  • файл может вмещать достаточно большой объем графической информации.

Недостатки:

  • не поддерживает работу с крупными объектами, например сделать билборд хорошего качества в AI вряд ли получится;
  • tребуются навыки работы в Adobe Illustrator.

CDR

Файлы CorelDRAW создают в Corel Paintshop Pro и CorelDRAW Graphics Suite — профессиональных платформах для работы с графикой. Изображение в CDR закодировано и сжато, но его можно открыть и обработать в вышеуказанных программах. 

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

Недостатки:

  • совместим только с продуктами Corel;
  • неподготовленному пользователю будет сложно разобраться в работе с форматом.

Новые форматы изображений

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

WebP

WebP — формат от Google, созданный специально для веб-графики. Изображения на страницах сайта должны загружаться быстро, иначе пользователи будут покидать его. WebP как раз помогает уменьшить «вес» изображения, но при этом сохранить его высокое качество. Конвертер для различных систем можно скачать на сайте Google Developers.

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

  • интернет-оптимизация;
  • поддержка прозрачности и анимации;
  • высокое качество по сравнению с PNG и JPEG;
  • совместимость почти со всеми браузерами.

Недостаток — для конвертации подходят только изображения в форматах PNG и JPEG.

Хотите понять, какие каналы приводят на сайт качественные лиды, а откуда посетители приходят «просто посмотреть» — и тут же уходят? Отслеживайте работу всех рекламных источников с помощью Сквозной аналитики Calltouch. Система объединит данные со всех площадок на наглядном дашборде, а с помощью интеграций с другими сервисами вы сможете получать максимум актуальной информации о клиентах, прибыли, работе менеджеров и маркетологов. 

caltouch-platform

Сквозная аналитика Calltouch

  • Анализируйте воронку продаж от показов до денег в кассе
  • Автоматический сбор данных, удобные отчеты и бесплатные интеграции

Узнать подробнее

platform

HEIF

High-Efficiency Image File Format, или высокоэффективный формат файлов, предусматривает до десяти уровней сжатия изображения для сверхбыстрой загрузки.

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

  • быстро загружается;
  • сохраняет качество;
  • поддерживает анимированные изображения и прозрачные слои.

Недостаток — открывается не во всех браузерах.

AVIF

AV1 Image File Format, или формат файлов изображений AV1, применяется для сжатия мультимедиа.

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

  • самый легкий «вес» файлов и быстрая загрузка;
  • поддержка прозрачных слоев и анимации;
  • хорошая цветопередача.

Недостаток — формат совместим не со всеми браузерами.

Памятка-гид по форматам 

Типы файлов изображений, их назначение и особенности:

Краткие выводы

  • Графика может быть векторной и растровой. Первую используют дизайнеры, архитекторы и иллюстраторы, а примеры второй вы видите повсеместно: в соцсетях, в смартфоне, на работе (при электронном документообороте). 
  • Форматы файлов векторных изображений: SVG, PDF, EPS, AI, CDR.
  • Форматы файлов растровых изображений: PNG, JPEG, GIF, RAW, TIFF, BMP, PSD.
  • Форматы, созданные специально для загрузки на сайты: WebP, HEIF, AVIF.
  • Для больших и сложных проектов подойдет формат CDR — с помощью него создают изображения для билбордов. 
  • Наиболее распространенные и простые в использовании форматы — PDF и JPEG.

Многие из нас сталкиваются с ПДФ документами: рекламными брошюрами, книгами и другой полиграфической продукцией в электронном виде. Изначально файлы в PDF формате представляют собой законченные работы, готовые к просмотру и печати, без возможности редактирования.

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

Какими бы готовыми не были документы, необходимость в их редактировании возникает всегда. Одни хотят что-то добавить, а другие удалить. Рассмотрим, как это сделать.

Программы для редактирования PDF

Adobe Acrobat DC — условно бесплатный редактор. Пробную версию можно скачать на сайте компании Adobe и пользоваться ею 30 дней.

В дальнейшем нужно приобрести данный продукт либо воспользоваться альтернативными инструментами.

Рассмотрим подробнее, как изменить PDF файл в данной программе.

Запустите программу и выберите задачу «Редактировать PDF».

Затем укажите путь к требуемому файлу.

Чтобы отредактировать текст, щелкните левой кнопкой мыши и меняйте его на свое усмотрение. Изменение местоположения выполняется перетаскиванием фрагмента на нужное место документа.

Изменение формата шрифтов доступно на вкладке «Инструменты», активируйте её и укажите необходимые параметры.

Поиск нужных слов в тексте и замена одних на другие выполняется с помощью меню «Редактирование» — «Найти» или сочетанием клавиш Ctrl + F.

Чтобы отредактировать изображение, кликните по нему мышкой и активируйте область с рисунком.

Для изменения размера картинки, щелкните по её углу и перетащите изображение на нужную высоту и ширину.

Чтобы обрезать рисунок, отразить по вертикали или горизонтали, на панели инструментов активируйте вкладку «Инструменты» и выберите нужное действие.

Foxit Advanced PDF Editor — ещё один условно бесплатный инструмент. Свободно пользоваться им можно первые 30 дней.

Запустив программу, вы увидите рабочее окно. Чтобы открыть документ, зайдите в меню «File» — «Open» и укажите путь к файлу.

Рабочая область Foxit Advanced интуитивно понятна, несмотря на англоязычный интерфейс.

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

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

Чтобы изменить изображение, нажмите по нему мышью компьютера. По краям рисунка отобразятся специальные ползунки, перемещение которых меняет размер картинки. Дополнительные функции находятся в меню Object.

Вставка нового рисунка происходит через вкладку меню «Edit» — «Images» — «Insert» или нажатием Ctrl + Shift +D. Выделите загруженное изображение и переместите его в нужное на странице место.

Inkscape — графический редактор, умеющий работать с ПДФ файлами. Данный продукт бесплатный.

Программа поддерживает работу с текстурами, контурами, текстом, маркерами, градиентами и другими объектами.

Так выглядит рабочее окно Inkscape.

Как видите, в ней удалось изменить текст и добавить надпись.

Редактирование PDF онлайн

Google Docs — бесплатный онлайн-редактор PDF файлов и других форматов документов.

Для работы с Google Docs нужна электронная почта Gmail.

Авторизовавшись в системе, вы попадете в Google Диск. Первое, что необходимо сделать, настроить загрузку файлов. Справа вверху нажмите на значок в виде «Шестерёнки», затем перейдите в подраздел «Настройки загрузки». Убедитесь в том, что каждый из пунктов отмечен галочкой.

Загрузите файл, для этого слева вверху нажмите на значок «Стрелка вверх» и укажите нужный объект на компьютере.

Когда документ загрузится, кликните на нём правой кнопкой мыши и выберите «Открыть с помощью» — «Google Документы».

В открывшемся редакторе отобразится содержимое ПДФ документа, страницы будут в виде картинок, под каждой из которой должен находиться распознанный текст.

Исходные рисунки можно удалить, а текст изменить на своё усмотрение.

Чтобы добавить изображение, воспользуйтесь меню «Вставка».

Таким образом, на основе старого создается новый документ.

Сохранение изменений выполняется через меню «Файл» — «Скачать как» — «Документ PDF».

PDFescape — ещё один бесплатный редактор. Он работает с документами, содержащими не более 100 страниц.

На главной странице нажмите кнопку «Edit Now». Затем выберите действие «Upload to PDFescape», и сообщите путь к нужному файлу. Когда загрузится ПДФ документ, вы сможете его редактировать.

Вся работа выполняется через панель инструментов, слева вверху.

Имеющиеся в арсенале PDFescape функции разбиты по вкладкам: Insert (вставить), Annotate (комментарии), Page (страница).

Уделив немного времени сервису, вы разберётесь в его возможностях.

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

13.1 Виджеты (Widgets)

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

Примеры виджетов:

  • Кнопка (класс QPushButton
    );
  • Метка (класс QLabel
    );
  • Поле ввода (класс QLineEdit
    );
  • Числовое поле-счётчик (класс QSpinBox
    );
  • Строка прокрутки (класс QScrollBar
    ).

В Qt
есть около 50-ти готовых классов графических элементов доступных для использования. Родительским классом для всех виджетов является класс QWidget
. От него наследуются все главные свойства визуальных элементов, которые мы тщательно рассмотрим. Исследование способов разработки программ с графическим интерфейсом начнём с примера.

Создадим пустой файл проекта. Запустим мастера проектов и выберем в разделе Projects (Проекты)
пункт Other Project (Другой проект)
. Далее выберем тип проекта Empty Qt Project (Пустой проект Qt)
. К файлу проекта добавим содержимое:

TEMPLATE = app
#Модули Qt, которые мы будем использовать
QT += widgets #Добавляем модуль widgets для работы с виджетами (необходимо для Qt5).
TARGET = widget#Название исполняемого файла
SOURCES +=
main.cpp

Теперь создадим простую программу с окном, в котором мы будем выводить надпись. Установим размер окна и текст его заголовка, а также установим шрифт для надписи. Для этого создадим файл main.cpp
со следующим содержанием:

#include
#include
int main (int lArgc, char * lArgv )
{
//Создаём объект QApplication, который инициализирует и настраивает оконную программу,
//управляет её выполнением с помощью цикла обработки событий
QApplication lApplication (lArgc, lArgv);
QLabel lLabel; //Создаём виджет QLabel — метка
lLabel.setText (» I am widget! «); //Задаём текст для метки
lLabel.setGeometry (200, 200, 300, 150);
//Задаём размеры — позицию (x, y) ширину и высоту. Задаём выравнивание текста
lLabel.setAlignment (Qt::AlignHCenter | Qt::AlignVCenter);
//Класс QFont используют для настройки параметров шрифта.
//Выбираем семейство шрифтов Arial Black и размер 12.
QFont lBlackFont (» Arial Black «, 12);
lLabel.setFont (lBlackFont); //Задаём шрифт для метки
lLabel.show (); //Вызываем метод show() для показа метки на экране.
return lApplication.exec (); //Запускаем программу на выполнение exec() выполняет
//цикл обработки событий. Программа ожидает действия пользователя и выполняет их обработку.
}

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

Рис.
13.1.

Для создания структуры виджеты организовывают в иерархию по принципу «часть — целое». Каждый из виджетов может содержать другие виджеты. Такой визуальный элемент становится «родителем» (родительским виджетом) для элементов, которые он содержит. Отметим, что такие отношения не следует путать с наследованием в C++
— отношениями между классами в программе. Отношения между виджетами являются отношениями между объектами. Такие отношения порождают несколько последствий:

  • родительский элемент будет отвечать за удаление дочернего элемента: если родительский виджет удалят — то он автоматически удалит и все дочерние элементы;
  • родительский виджет размещает дочерние виджеты внутри себя, части дочерних виджетов, которые выходят за пределы родителя будут невидимыми;
  • часть состояния родительского виджета передаётся дочерним — это касается некоторых свойств (видимость, активность) и стилей, которые накладываются на визуальный элемент.

Виджеты, которые не имеют родителя (виджеты верхнего уровня), имеют вид отдельных окон в программе. Рассмотрим пример. Назовём новый проект ParentExample
. Файл проекта будет содержать обычные для GUI
-проекта настройки:

TEMPLATE = app
TARGET = ParentExample
QT += widgets

Для виджета, который мы будем использовать в качестве главного окна создадим новый класс. Для этого в категории Files and Classes (Файлы и классы)
выберем раздел С++ и выберем С++ Class (см. рис. 13.2).

Следующим шагом будет создание нескольких элементов на окне. Для этого откроем файл parentwidget.cpp
и изменим код конструктора класса. Для отображения элементов достаточно создать их в конструкторе класса и задать ParentWidget
как отца для них. Код parentwidget.cpp
выглядит так:

#include » parentwidget.h »
#include
#include
#include
ParentWidget::ParentWidget (QWidget * parent) :
QWidget (parent)
{
//Создаём метку, указывая родительский виджет — this, то есть экземпляр класса ParentWidget.
QLabel * lLabel=new QLabel (this);
//Позиция относительно левого верхнего угла родительского виджета.
lLabel ->setGeometry (50, 0, 100, 30);
lLabel ->setText (» TextLabel «); //Текст на метке.
//Создаём кнопку, задаём «родителя», геометрию и текст
QPushButton * lPushButton = new QPushButton (this);
lPushButton->setGeometry (50, 50, 100, 30);
lPushButton->setText (» PushButton «);
//Создаём поле ввода, задаём «родителя», геометрию и текст
QLineEdit * lLineEdit = new QLineEdit (this);
lLineEdit ->setGeometry (50, 100, 100, 30);
lLineEdit ->setText (» LineEdit «);
lLineEdit ->selectAll (); //Выделяем текст в поле ввода (просто для примера)
//Наконец изменяем размер родительского виджета
setGeometry (x (), y (), 300, 150);
//и задаём текст заголовка окна
setWindowTitle (» parent widgetExample «);
}

Поскольку родительским элементом является ParentWidget
, то метка (QLabel
), кнопка (QPushButton
) и текстовое поле (QLineEdit) находятся в его пределах. Позицию дочерних виджетов задают относительно левого верхнего угла отца. В этом легко убедиться изменив размеры и позицию окна нашей программы. Обратите внимание на то, как мы создавали элементы пользовательского интерфейса в динамической памяти используя оператор new
. Это гарантирует, что элементы не будут удалены после завершения работы конструктора ParentWidget
.

В этой статье речь пойдет о создании простейших приложений с использованием форм на языке C++. Сразу хочу внести ясность: разработка «формовых» С++ приложений будет осуществляться в среде Microsoft Visual Studio (обойдем стороной главного конкурента от компании Borland Software). Стоит отметить, что в Visual Studio есть два способа сделать приложение с формами, решение принимается в момент создания нового проекта.

Первый из них — использовать Windows Forms, реализующий графический интерфейс пользователя и входящий в Microsoft.NET Framework. Данный подход упрощает доступ к интерфейсным элементам Microsoft Windows благодаря созданию обёртки для Win32 API в управляемом коде. Если изложить свои мысли в более понятной форме, то данный подход очень схож с построением консольного приложения, но чуть более сложен т.к. использует формы.

Второй способ основан на использовании Microsoft Foundation Classes (MFC), библиотеке, которая берет на себя заботу о создании каркаса приложения. В отличие от первого, MFC «из коробки» использует патерн MVC (Model-View-Cont roller). Данный подход сложнее первого, но опираясь на него можно запросто создать каркас для весьма интересных приложений, к примеру, текстового редактора или использовать компонент Ribbon и сделать меню как в небезызвестном MS Office 2010.

Создание приложения в MS Visual Studio

Давайте создадим новое приложение: File->New->Project. В появившемся окне как на рисунке выше найдите и выберите Windows Forms Application, далее укажите название (app1) и расположение нового проекта и подтвердите его создание нажатием кнопки «OK».

Прежде чем приступить непосредственно к программированию, следует понять, что такое событие. Событие это действие, которое происходит при определённых условиях. Самыми простыми (и наиболее распространенным и) можно считать Load,Click… рассмотрим некоторые из них более подробно:

  • Activated — событие, возникающее при активизации элемента.
  • Click — возникает при одиночном нажатии на элемент.
  • DoubleClick — двойной щелчок по элементу.
  • HelpRequested — срабатывает при нажатии клавиши .
  • Paint — возникает, когда элемент перерисовывается.
  • MouseLeave — событие срабатывает, когда курсор покидает границы элемента.

Не стоит забывать, что свойственные элементу события зависят от его типа. Чтобы просмотреть все доступные для объекта формы события следует выделить его и в окне свойств выбрать значок молнии. Ниже показана часть событий для элементаForm1. Как можете видеть для события Load выбрана функция Form1_Load, следовательно код, содержащийся в этой функции будет вызван при загрузке формы.

Откройте файл Form1.h, там будет такой код:

Private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e){
}

Это та самая функция Form1_Load, срабатывающая при загрузке формы. Давайте убедимся в этом, добавив на форму компонент TextBox.

Для этого откройте ресурс формы и выделите его. Далее выберите панель с инструментами Toolbox и перетащите компонент TextBox на форму. Модифицируйте функцию Form1_Load следующим образом:

Private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
textBox1->Text = «Hello, World!»; //textBox1 – имя добавленного вами текст бокса
}

Запустите проект, в итоге должно появиться следующее сообщение:

На этом пока все, продолжение в следующих уроках.

5


Я сделал много разных разделов GUI-системы для Nintendo DS, таких как кнопки и текстовые поля и флажки, но мне нужен способ скрыть эти классы в одном классе Gui, чтобы я мог рисовать все на экране все сразу, и сразу проверьте все кнопки, чтобы проверить, нажаты ли какие-либо кнопки. Мой вопрос — как наилучшим образом организовать все классы (например, кнопки и текстовые поля) в один GUI-класс?

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

Edit:
Я использую C++.

Class Gui {
public:
void update_all();
void draw_all() const;
int add_button(Button *button); // Returns button id
void remove_button(int button_id);
private:
Button *buttons;
int num_buttons;
}

Этот код имеет несколько проблем, но я просто хотел дать вам представление о том, чего я хочу.

  • 5
    ответов
  • Сортировка:

    Активность

2



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

Я какое-то время что-то искал, я консультировался с некоторыми книгами и VTMs , и до сих пор это приблизительная идея простых систем ui.

Class uiElement()
{

virtual void Update() = 0;
virtual void Draw() = 0;

}
class uiButton() public: uiElement
{

virtual void Update();
virtual void Draw();

}
class uiTextbox() public: uiElement
{

virtual void Update();
virtual void Draw();

}
… // Other ui Elements
class uiWindow()
{

void Update();
void Draw();
void AddElement(uiElement *Element);
void RemoveElement(uiElement *Element);
std::list Elements;

}
void uiWindow::Update()
{

for (list ::iterator it = Elements.begin(); it != Elements.end(); it++)
it->Update();

}
void uiWindow::Draw()
{

for (list ::iterator it = Elements.begin(); it != Elements.end(); it++)
it->Draw();

}

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

У меня пока ничего не работает, так как у меня проблемы с кодом рисования. С различными API-интерфейсами на ПК и PSP я просматриваю код оболочки для OpenGL и psp gu.

Надеюсь, это поможет.

Одна полезная стратегия, которую следует иметь в виду, может быть composite pattern . На низком уровне он может позволить вам легче обрабатывать все объекты GUI (и коллекции объектов) после их создания. Но я не знаю, что связано с дизайном графического интерфейса GUI, поэтому одно место, чтобы найти общее вдохновение, — это исходный код существующего проекта. WxWidgets — это кросс-платформенный графический интерфейс с доступным исходным кодом. Удачи с вашим проектом!

3


Для тех, кто заинтересован, вот мой с открытым исходным кодом, BSD-лицензированные GUI инструментарий для DS:

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

Если вы не
поддержите это в базовом классе, вы столкнетесь с серьезными проблемами при попытке реализовать что-либо более сложное, чем текстовое поле и кнопку. Например:

  • Табличные панели можно смоделировать как несколько кнопок, сгруппированных в единый родительский элемент пользовательского интерфейса, который обеспечивает взаимную исключительность выбора;
  • Группы радиостанций (с течением времени);
  • Полосы прокрутки могут быть представлены как элемент слайдера/желоба и кнопки вверх/вниз;
  • Списки прокрутки могут быть представлены в виде контейнера и нескольких элементов пользовательского интерфейса.

Кроме того, стоит помнить, что у DS есть процессор с частотой 66 МГц и 4 МБ ОЗУ, который используется как для хранения вашей программы, так и для ее выполнения (DS-диски загружаются в ОЗУ до их запуска). Вы действительно должны рассматривать его как встроенную систему, что означает, что STL отсутствует. Я удалил STL из Woopsi и сумел сохранить 0.5MB. Не так много по настольным стандартам, но это 1/8 от общей доступной памяти DS, потребляемой STL-мусором.

Я подробно весь процесс написания пользовательского интерфейса на моем блоге:

Она включает в себя описание двух алгоритмов я придумал для перерисовки экрана, который хитрая часть создание графического интерфейса (одно просто разбивает прямоугольники вверх и запоминает видимые области, а другое использует деревья BSP, что намного эффективнее и проще для понимания), советы по оптимизации и т. д.

Последнее обновление: 07.10.2019

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

Определение интерфейса

Для определения интерфейса используется ключевое слово interface
. Как правило, названия интерфейсов в C# начинаются с заглавной буквы
I
, например, IComparable, IEnumerable (так называемая венгерская нотация), однако это не обязательное требование, а больше стиль программирования.

Что может определять интерфейс? В целом интерфейсы могут определять следующие сущности:

  • Свойства

    Индексаторы

  • Статические поля и константы (начиная с версии C# 8.0)

Однако интерфейсы не могут определять нестатические переменные. Например, простейший интерфейс, который определяет все эти компоненты:

Interface IMovable
{
// константа
const int minSpeed = 0; // минимальная скорость
// статическая переменная
static int maxSpeed = 60; // максимальная скорость
// метод
void Move(); // движение
// свойство
string Name { get; set; } // название
delegate void MoveHandler(string message); // определение делегата для события
// событие
event MoveHandler MoveEvent; // событие движения
}

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

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

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

Еще один момент в объявлении интерфейса: если его члены — методы и свойства не имеют модификаторов доступа, но фактически по умолчанию доступ
public
, так как цель интерфейса — определение функционала для реализации его классом. Это касается также и констант и
статических переменных, которые в классах и структурах по умолчанию имееют модификатор private. В интерфейсах же они имеют по умолчанию модификатор
public. И например, мы могли бы обратиться к константе minSpeed и переменной maxSpeed интерфейса IMovable:

Static void Main(string args)
{
Console.WriteLine(IMovable.maxSpeed);
Console.WriteLine(IMovable.minSpeed);
}

Но также, начиная с версии C# 8.0, мы можем явно указывать модификаторы доступа у компонентов интерфейса:

Interface IMovable
{
public const int minSpeed = 0; // минимальная скорость
private static int maxSpeed = 60; // максимальная скорость
public void Move();
protected internal string Name { get; set; } // название
public delegate void MoveHandler(string message); // определение делегата для события
public event MoveHandler MoveEvent; // событие движения
}

Начиная с версии C# 8.0 интерфейсы поддерживают реализацию методов и свойств по умолчанию. Это значит, что мы можем определить в интерфейсах полноценные методы и свойства, которые
имеют реализацию как в обычных классах и структурах. Например, определим реализацию метода Move по умолчанию:

Interface IMovable
{
// реализация метода по умолчанию
void Move()
{
Console.WriteLine(«Walking»);
}
}

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

Interface IMovable
{
void Move()
{
Console.WriteLine(«Walking»);
}
// реализация свойства по умолчанию
// свойство только для чтения
int MaxSpeed { get { return 0; } }
}

Стоит отметить, что если интерфейс имеет приватные методы и свойства (то есть с модификатором private), то они должны иметь реализацию по умолчанию.
То же самое относится к любым статическим методам и свойствам (не обязательно приватным):

Interface IMovable
{
public const int minSpeed = 0; // минимальная скорость
private static int maxSpeed = 60; // максимальная скорость
// находим время, за которое надо пройти расстояние distance со скоростью speed
static double GetTime(double distance, double speed) => distance / speed;
static int MaxSpeed
{
get { return maxSpeed; }
set
{
if (value > 0) maxSpeed = value;
}
}
}
class Program
{
static void Main(string args)
{
Console.WriteLine(IMovable.MaxSpeed);
IMovable.MaxSpeed = 65;
Console.WriteLine(IMovable.MaxSpeed);
double time = IMovable.GetTime(100, 10);
Console.WriteLine(time);
}
}

Модификаторы доступа интерфейсов

Как и классы, интерфейсы по умолчанию имеют уровень доступа internal
, то есть такой интерфейс доступен только
в рамках текущего проекта. Но с помощью модификатора public мы можем сделать интерфейс общедоступным:

Public interface IMovable
{
void Move();
}

Стоит отметить, что в Visual Studio есть специальный компонент для добавления нового интерфейса в отдельном файле.
Для добавления интерфейса в проект можно нажать правой кнопкой мыши на проект и в появившемся контекстном меню выбрать Add
->
New Item…
и в диалоговом окне добавления нового компонента выбрать пункт Interface
.

1.1. Hello,
Qt!

Ниже приводится текст простейшей Qt программы:

1 #include
2 #include
3 int main(int argc, char *argv)
4 {
5 QApplication app(argc, argv);
6 QLabel *label = new QLabel(«Hello, Qt!», 0);
7 app.setMainWidget(label);
8 label->show();
9 return app.exec();
10 }
Здесь, в строках 1 и 2, подключаются определения классов
QApplication и QLabel .

В строке 5 создается экземпляр класса QApplication , который управляет
ресурсами приложения. Конструктору QApplication передаются аргументы
argc и argv , поскольку Qt имеет возможность
обрабатывать аргументы командной строки.

В строке 6 создается визуальный компонент QLabel , который отображает надпись
«Hello, Qt!». В терминологии Qt, все визуальные
компоненты, из которых строится графический интерфейс,
называются виджетами

(widgets). Кнопки, меню,
полосы прокрутки и разнообразные рамки — все это виджеты.
Одни виджеты могут содержать в себе другие виджеты, например,
главное окно приложения — это самый обычный виджет, который
может содержать QMenuBar ,
QToolBar , QStatusBar и др. Аргумент 0,
передаваемый конструктору QLabel (в строке 6) — это
«пустой» (null) указатель, который сообщает о том,
что этот виджет не имеет «хозяина», т.е. не
включается в другой виджет.

В строке 7 назначается «главный» виджет
приложения. Когда пользователь закрывает «главный»
виджет приложения (например, нажатием на кнопку «X»
в заголовке окна), то программа завершает свою работу. Если в
программе не назначить главный виджет, то она продолжит
исполнение в фоновом режиме даже после того, как пользователь
закроет окно.

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

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

Любое действие пользователя порождает событие

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

Рисунок 1.1. Окно приложения в Windows XP

Теперь самое время проверить работу нашего приложения. Но
прежде всего — необходимо, чтобы у вас была установлена Qt
3.2 (или более поздняя версия), а переменная окружения
PATH содержала корректный путь к
каталогу bin . (В Windows настройка
переменной PATH выполняется автоматически, в процессе
установки библиотеки Qt)

Скопируйте текст программы в файл, с именем hello.cpp , в каталог hello .

Перейдите в этот каталог и дайте команду:

Qmake -project
она создаст платформо-независимый файл проекта
(hello.pro), а затем дайте
следующую команду:
qmake hello.pro
Эта команда создаст Makefile , на основе
файла проекта. Дайте команду make , чтобы
скомпилировать программу и затем запустите ее, набрав в командной
строке hello
(в Windows)
или ./hello
(в Unix) или
open hello.app
(в Mac OS
X). Если вы работаете в Windows и используете Microsoft Visual C++, то
вместо команды make вы должны дать команду
nmake . Как альтернативный вариант — вы
можете создать проект Visual Studio из файла
hello.pro , запустив команду:
qmake -tp vc hello.pro
и затем скомпилировать программу в Visual Studio.

Рисунок 1.2. Метка с форматированным текстом.

А теперь немного развлечемся. Изменим внешний вид метки,
добавив форматирование текста в стиле HTML. Для этого,
замените строку

QLabel *label = new QLabel(«Hello, Qt!», 0);
на
QLabel *label = new QLabel(«

Hello »
«Qt!

«, 0);
и пересоберите приложение.

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

Рисунок 1.3. Приложение Quit.

1 #include

2 #include
3 int main(int argc, char *argv)
4 {
5 QApplication app(argc, argv);
6 QPushButton *button = new QPushButton(«Quit», 0);
7 QObject::connect(button, SIGNAL(clicked()),
8 &app, SLOT(quit()));
9 app.setMainWidget(button);
10 button->show();
11 return app.exec();
12 }
Виджеты Qt имеют возможность посылать приложению
сигналы

, извещая его о том, что
пользователь произвел какое-либо действие или о том, что
виджет изменил свое состояние
. Например, экземпляры класса QPushButton посылают приложению сигнал
clicked() , когда
пользователь нажимает на кнопку. Сигнал может быть
«подключен» к функции-обработчику (такие
функции-обработчики в Qt называются слотами

).
Таким образом, когда виджет посылает сигнал,
автоматически вызывается слот. В нашем примере мы
подключили сигнал clicked() ,
от кнопки, к слоту quit() ,
экземпляра класса QApplication . Вызовы SIGNAL() и SLOT() — это макроопределения, более
подробно мы остановимся на них в следующей главе.

Теперь соберем приложение. Надеемся, что вы уже создали
каталог quit и разместили в нем
файл quit.cpp . Дайте команду
qmake
, для
создания файла проекта, а затем второй раз — для создания
Makefile:

Qmake -project
qmake quit.pro
Теперь соберите приложение командой
make
и запустите его. Если вы щелкнете
по кнопке «Quit» или нажмете на клавиатуре клавишу
«Пробел», то приложение завершит свою работу.

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

Рисунок 1.4. Приложение Age.

Приложение содержит три виджета: QSpinBox , QSlider
и QHBox (область горизонтальной
разметки). Главным виджетом приложения назначен QHBox . Компоненты QSpinBox и QSlider помещены внутрь QHBox и являются подчиненными

, по
отношению к нему.

Рисунок 1.5. Виджеты приложения Age.

1 #include
2 #include
3 #include
4 #include
5 int main(int argc, char *argv)
6 {
7 QApplication app(argc, argv);
8 QHBox *hbox = new QHBox(0);
9 hbox->setCaption(«Enter Your Age»);
10 hbox->setMargin(6);
11 hbox->setSpacing(6);
12 QSpinBox *spinBox = new QSpinBox(hbox);
13 QSlider *slider = new QSlider(Qt::Horizontal, hbox);
14 spinBox->setRange(0, 130);
15 slider->setRange(0, 130);
16 QObject::connect(spinBox, SIGNAL(valueChanged(int)),
17 slider, SLOT(setValue(int)));
18 QObject::connect(slider, SIGNAL(valueChanged(int)),
19 spinBox, SLOT(setValue(int)));
20 spinBox->setValue(35);
21 app.setMainWidget(hbox);
22 hbox->show();
23 return app.exec();
24 }
В строках с 8 по 11 создается и настраивается
QHBox .
Чтобы вывести текст в заголовке окна, вызывается
setCaption() . А затем
устанавливается размер пустого пространства (6 пикселей)
вокруг и между подчиненными виджетами.

В строках 12 и 13 создаются QSpinBox и QSlider , которым, в качестве владельца,
назначается QHBox .

Не смотря на то, что мы явно не задали ни положение, ни
размеры виджетов QSpinBox и
QSlider , тем менее они очень
аккуратно расположились внутри QHBox . Собственно для этого и предназначен
QHBox . Он выполняет автоматическое
размещение подчиненных виджетов, назначая им координаты
размещения и размеры, в зависимости от их требований и
собственных настроек. В Qt имеется много классов, подобных
QHBox , которые избавляют нас от
рутинной работы по ручной подгонке положения и размеров
визуальных компонентов.

В строках 14 и 15 устанавливаются допустимые пределы
изменения счетчика и ползунка. (Мы можем смело предположить,
что возраст нашего пользователя едва ли превысит 130 лет.)
Два вызова connect() , в строках с
16 по 19 синхронизируют ползунок и счетчик, благодаря чему
они всегда будут отображать одно и то же значение. Всякий
раз, когда значение одного из виджетов изменяется, он
посылает сигнал valueChanged(int) , который поступает в слот setValue(int) другого виджета.

В строке 20 устанавливается первоначальное значение (35)
счетчика. Когда это происходит, счетчик посылает сигнал
valueChanged(int) , со значением
входного аргумента, равным 35. Это число передается в слот
setValue(int) виджета QSlider , который устанавливает значение
этого виджета равным 35. После этого уже QSlider посылает сигнал valueChanged(int) , поскольку его значение
только что изменилось, вызывая таким образом слот setValue(int) виджета QSpinBox . Но на этот раз счетчик не посылает
сигнал, поскольку его значение и так было равно 35. Таким
образом предотвращается бесконечная рекурсия. Рисунок 1.6
иллюстрирует эту ситуацию.

Рисунок 1.6. Изменение одного значения вызывает
изменение другого.

В строке 22 QHBox делается
видимым (вместе со всеми подчиненными виджетами).

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

Справочная система в Qt — это пожалуй самый основной
инструмент любого разработчика. Она описывает все классы и
функции в этой библиотеке. (Документация к Qt 3.2 включает в
себя описанее более 400 классов и 6000 функций.) В этой книге
вы встретитесь с большим количеством классов и функций Qt, но
далеко не со всеми. Поэтому совершенно необходимо, чтобы вы
самостоятельно ознакомились со справочной системой Qt.

Стили виджетов
Скриншоты, которые мы до сих пор видели, были получены в Windows
XP. Однако внешний вид виджетов изменяется, в зависимости от платформы,
на которой запускается приложение. С другой стороны, Qt в состоянии
эмулировать внешний вид любой из поддерживаемых платформ.

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

Растровый тип графических изображений

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

Растровая графика имеет несколько преимуществ:
  • широкая сфера применения (с их помощью можно передавать объекты реального мира, при помощи фото);
  • графическую информацию легко обрабатывать;
  • распечатку можно провести на любом оборудовании, стандартные принтеры легко строят изображение из пикселей;
  • большая часть растровых форматов воспринимается любыми программами для обработки и вывода изображений на монитор.
Но при работе с ними нужно учесть ряд недостатков:
  • размер фала может быть очень большим, что затруднит его передачу (это чаще всего случается с изображениями без сжатия);
  • редактировать растровое изображение сложнее, так как пиксели становятся неотъемлемой частью общего рисунка, а не воспринимаются как самостоятельные единицы;
  • форматирование и трансформация способна исказить изображение.

Тем не менее с растровыми изображениями мы сталкиваемся чаще всего. Любая фотокамера создает изображения именно в таком формате.

В каких форматах сохраняются растровые файлы?

форматы графических файлов

Популярные форматы растровых графических файлов можно встретить на каждом компьютере. Большинство из них вы видели на своем устройстве. К растровым форматам относятся:

  1. Bit Map (BMP, расширение – bmp) – файл с самым неэкономным кодированием, один из стандартных графических форматов, использовавшийся в самых первых версиях Windows. Изначально пользователям было доступно всего 256 цветов, а каждый пиксель равнялся одному байту. Сейчас можно использовать BMP для хранения полноцветных картинок. Основная программа для работы с ним – Paint, но открыть его можно через Photoshop и другие редакторы.
  2. Taged Image File Format (TIFF, расширение tif) – универсальный межплатформенный формат, использующийся для передачи изображений между пользователями. Чаще всего используется в издательстве и при составлении топографических карт, так как с его помощью можно получить четкое изображение на распечатанной версии картинки. Устанавливается по умолчанию в утилиты, работающие со сканерами и факсами. Не подходит для веб-сайтов, так как изображения имеют большой вес. Лучше всего с ним работать программой FastStone – она дает возможность просмотреть содержимое файла, обработать и преобразовать его.
  3. Graphic Interchamge Format (GIF, расширение – gif) – формат, поддерживающий анимацию без потери информации во время сжатия. Широко применяется в интернете, несмотря на ограниченное количество цветов. Внешний вид изображения не меняется при использовании для просмотра разных браузеров и платформ. С форматом работают программы: Viewer, Paint, Adobe Photoshop, Visio.
  4. PhotoShop Document (PSD, расширение – psd) – внутренний формат растровой графики, используемый для пакета программ Adobe Photoshop. Его особенность в том, что изображение сохраняет все слои и может быть за счет этого легко отредактировано.
  5. Portable Network Graphics (PNG, расширение – png) – свободный формат, при котором изображение сжимается без потерь, что позволяет его использовать в разных областях компьютерной графики. Работают с этим форматом программы: Viewer, Paint, Photoshop, Visio, Corel PaintShop Pro.
  6. Joint Photographic Expert Group (JPEG, расширение – jpg) – хранит изображения, сжимая их. Этот формат считается стандартом для полноцветных изображений. Он используется для записи сделанных снимков с фотокамер, применяется в компьютерной графике. Отличается плавной сменой яркости и цвета в рабочей области. Во время сжатия из файла исключаются данные, которые не оказывают существенного слияния на конечное изображение. Весь рисунок делится на прямоугольные области, иногда в результате получается размытое изображение. Обработку изображений можно проводить утилитами: FastStone Viewer, Paint, Adobe Photoshop, Visio.
  7. Joint Photographic Expert Group 2000 (JPEG 2000, расширение — jp2) – позволяет при сжатии получить более четкие изображения, при этом вес файла становится меньше. Обрабатывается теми же программами, что и его прототип. Мало распространен, так как поддерживают его не все браузеры.
  8. Windows Icon (ICO, расширение – ico) – используется для создания изображений малого формата, иконок. Этими изображениями маркируются сайты в адресной строке или в панели «Избранное» браузеров. Для работы с этим форматом используются программы: Inkscape, Newera Iconcool Editor, Sibcode Sib Icon Editor.
  9. RAW (расширения: ari, dpx, arw, srf, sr2, bay, crw, cr2, dng, dcr, kdc, erf, 3fr, mef, mrw, nef, nrw, orf, ptx, pef, raf, raw, rwl, dng, rw2, r3d, srw, x3f) – форма, который называют цифровым негативом. Используется при сохранении изображений профессиональными фотокамерами. Общий стандарт расширения этого формата отсутствует, поэтому каждый производитель техники создает собственный вариант и программное обеспечение, способное работать с ним, конвертировать в другие общепринятые варианты.

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

Векторный тип графических изображений

форматы графических файлов

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

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

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

Форматы векторных изображений

Самые распространенные векторные форматы графических файлов:

  1. CDR (расширение cdr) – внутренний формат пакета программ CorelDRAW. Позволяет сохранять изображения, созданные в этой программе и текст. Также этот пакет программ может использовать другие специальные форматы: CDT, CDX, CGM, CLK, CMX, CPX, CSL, DES, DRW, DSF. Часть из этих форматов поддерживает совместное использование растровой и векторной графики. Они используются для разных приложений пакета CorelDRAW и могут использоваться для создания разных изображении, шаблонов и видеоклипов.
  2. AI (расширение ai) – формат использующийся в программе Adobe Illustrator. При работе с этим файлом стоит помнить, что созданный на свежей версии ПО файл невозможно открыть на устаревшей версии утилиты. Этот формат любят за высокое качество графики, но недостаток у него в том, что ряд эффектов при его конвертации теряется, например, градиентная заливка.
  3. EPS (расширение eps) – формат, поддерживаемый многими программами для работы с векторной графикой. Имеет несколько версий, которые указаны цифровыми значениями, но многие программы не поддерживают EPS выше 7. Благодаря этому формату к конвертированию прибегают в крайних случаях, ведь гораздо проще сохранить файл в нем, чем потом восстанавливать потерянные свойства.
  4. DXF (расширение dxf) – формат, с которым работают приложения для проектирования AvtoCAD и его аналоги. Файлы поддерживают многие возможности, которых нет в других векторных вариантах, например, сохранение трехмерных объектов.
  5. WMF (расширение wmf) – используется для работы с приложениями на базе Windows OC. Это универсальный инструмент, используемых для выведения изображений на экраны компьютеров и принтеры.
  6. SWG, SVGZ (расширения – swg, svgz, отличающиеся между собой процентом сжатия изображения) – формат, используемый для оформления веб-страниц. Его поддерживают все популярные браузеры. Его нельзя применять для хранения сложных рисунков, поэтому его сфера использования сильно ограничена.
  7. TGA (расширение tga) – популярный формат, используемый в анимационной графике и при редактировании видеоизображений. Информация сохраняется с глубиной 32 разряда на точку. Это универсальный вариант файла, который может также применяться для хранения растровых изображений.
  8. FLA, FH (расширения fla,fh) – используется для хранения исходных вариантов Flash-изображений. Открываются только на программном обеспечении фирмы Adobe. В частности, для них используется программа Flash и векторный редактор FreeHand.

К векторным можно также отнести популярный формат для документов PDF. Изначально не планировалось, чтобы с его помощью производилась передача изображений, но сейчас все чаще пользователи сохраняют в нем смешанную по содержимому информацию – текст и графику. При этом иллюстрации в этом документе могут быть как векторными, так растровыми. Текстовая часть содержит большое количество шрифтов. Этот формат также подарила миру фирма Adobe.

Как поменять форматы картинок?

форматы графических файлов Irfan View

Необходимость преобразовать один формат файла в другой чаще всего возникает по причинам:

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

Преобразование форматов графических файлов производится при помощи утилит. Например, в Adobe Photoshop можно сохранить файлы не только с расширением для внутреннего использования. При помощи команды «Сохранить для Web» вам будет доступно около десятка популярных растровых форматов. Аналогичными возможностями обладают и другие программы для работы с изображениями, например, в CorelDRAW можно не только изменить формат созданной графики, но и трансформировать векторный вариант в растровый.

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

  • Flash-SWF to AVI/GIF/MP3 Converter;
  • FormatFactory;
  • VeryDOC EMF to EPS;
  • Image Converter;
  • DWG to BMP;
  • Aunsoft SWF Converter;
  • Uniconvertor;
  • GraphicsConverterPro;
  • Converter 3Plus;
  • Solid Converter DWG;
  • Photo to PDF;
  • Raster to Vector SDK.

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

Еще одну возможность преобразовывать и работать с файлами дают плагины, которыми дополняют стандартные графические редакторы. Один из них – Irfan View. Он позволяет вашему программному обеспечению работать не только с базовыми расширениями, но и еще с более чем 20 форматами.

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

Всем доброго времени суток дорогие читатели fotodizart.ru.

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

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

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

Итак, приступим:

PSDPSD – это собственный формат программы Adobe Photoshop, он позволяет сохранять всю проделанную работу над изображением. А именно прозрачность, режимы смешивания слоев, тени, слои, маски слоя и все остальные мелочи работы проделанной с изображением. Этот формат обычно используется, если работа над изображением до конца не завершена. Так же его часто используют для разработки макета сайта, так как производить верстку с данного файла удобно видя все слои и элементы. А во всех остальных случаях его использование нет смысла, так как он имеет значительно большой размер файла по отношению к другим форматам.

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

BMPBMP – это точечный рисунок. Изображение в этом формате состоит из массы точек, каждая из которых содержит свой цвет. Этот формат имеет очень большой размер и хорошо подвергается сжатию архиваторами. Потери качества в BMP не значительное, однако, он уступает TIFF.

JPEGJPEG – это самый широко используемый формат. Он получил широкое использование в цифровой технике (фотоаппаратах). Причина столь широкого использования это довольно не плохое качество и маленький размер файла. Но маленький размер говорит о том, что значительно теряется качество изображения. Все дело в алгоритме сжатия изображений, он состоит в том что, сжимаясь, изображение значительно теряет точность. Этот формат по этим причинам не желательно использовать в полиграфии. Но плюсом является то, что их удобно посылать по email (электронной почте), выкладывать в Интернете и хранить на дисках.

JPEG2000JPEG 2000 – формат графических файлов с хорошей компрессией. Качество изображения по сравнению с JPEG получается более гладкое и четкое, а размер файла в одинаковом качестве в разы меньше. Графические файлы, сохранённые в JPEG 2000, с высокой степенью сжатия не содержат артефактов.

Поддерживает сжатие изображений, как с потерями качества, так и без него. Кроме этого формат JPEG 2000, поддерживает «прогрессивное сжатие», которое по мере загрузки файла позволяет увидеть качественное изображение, изначально представленное как размытое. Расширение файлов:  .jp2, .j2k, .jpf, .jpm, .jpg2, .j2c, .jpc.

JPEG XRJPEG XR – формат кодирования изображений, разработанный Microsoft. Сжимает фотографии больше и лучше JPEG 2000 может сжимать без потери качества. Поддерживает прозрачность и различную степень сжатия. JPEG XR достаточно эффективный формат для сжатия изображений,  при достаточно большом проценте сжатия, на изображение практически отсутствуют артефакты.

Изображения JPEG XR загружаются быстрее, чем в формате JPEG2000. Формат поддерживает 16bit, что дает возможность хранить картинки с полным охватом цветов размером меньше чем в формате TIFF. Расширение файлов: .jxr, .hdp, .wdp.

GIFGIF  – в основном используется для изготовления графики для Интернета. Он не годится для сохранения фотографий, так как имеет ограничение по цветопередаче, по этим же причинам он не годится для полиграфии. Изображение данного графического формата состоит из точек, которые могут включать в себя от 2 до 256 цветов. Ограниченность цветопередачи и поддержка прозрачности делают его незаменимым для хранения изображений с минимум цветов, например логотипов. Еще одна особенность формата это возможность изготовления анимированных изображений. Широко применяют для создания gif (анимированных) баннеров.

EPSEPS – можно назвать наиболее надежным и универсальным форматом. Он в основном предназначен для передачи векторной и растровой графики в издательства, возможность создания и использования данного формата практически всеми графическими редакторами. Использовать данный формат имеет наибольший смысл только в том случае, если вывод осуществляется на PostScript-устройстве.

Этот формат уникален он поддерживает все цветовые модели необходимые для печати, может записывать данные в RGB, обтравочные контуры, а также использование шрифтов и другое. Первоначально EPS разрабатывался как векторный формат, ну а  позднее уже появилась его разновидность растра — Photoshop EPS.

PNGPNG – это графический формат, который пришел совсем недавно на смену Gif формату, и уже успел, стань очень популярным из за того, что умеет держать прозрачность и полупрозрачность что было не возможно в его предшественнике gif. Это значит что png держит полупрозрачность в диапазоне от 1 до 99% при помощи альфа-канала с 256 градациями серого. Прозрачность работает следующим образом, в файл записывается информация о гамма — коррекции. Гамма-коррекция представляет собой определенное число яркости,  контраста монитора. Это число в последующем считывается из файла и  позволяет  откорректировать отображение изображения за счет поправок яркости.

PICTPICT –  это собственный формат Макинтош. Формат способен включать в себя  как растровую, так и векторную информацию, текст, а также звук, использует RLE-компрессию. Битовые PICT-изображения могут иметь абсолютно любую глубину битового представления. Векторные же PICT-изображения, которые практически исчезли из использования в наши дни, имели необычные проблемы толщины линии и другие отклонения во время печати.

Формат используется для Макинтош, и при создании определенных презентаций только для Мак. На обычных компьютерах (не мак) PICT – формат представлен с расширением  .pic или .pct, считывается  определенными программами, работа с этим форматом зачастую бывает не простой.

PDFPDF –формат предложен и разработан компанией Adobe, как формат для электронной документации, различных презентаций и верстки для пересылки его по электронной почте.  И его проектная особенность была обеспечить компактный формат. По этим причинам все данные в pdf могут сжиматься, причем особенность в нем такая, что к разного рода информации применяются разные, более подходящие для этих типов данных сжатия: JPEG, RLE, CCITT, ZIP.

PCXPCX – формат растрового изображения. Файлы pcx типа используют стандартную палитру цветов, этот  формат был расширен для хранение 24-битных изображений.  Этот формат аппаратно зависим. Предназначен хранить информацию в файле в том же виде, что и в видео-плате. Чтобы совместить этот формат со старыми программами необходима поддержка EGA-режима видеоконтроллера.  Алгоритм сжатия быстрый и занимает малый объём памяти, но не очень эффективен, не подойдет для сжатия фотографий и детальной компьютерной графики.

ICOICO –  этот формат разработан для хранения значков файлов. Размеры  ico файлов могут  быть любыми, но наиболее используемые значки со сторонами в  16, 32 и 48 пикселей. Еще используются иконки с размерами  24, 40, 60, 72, 92, 108, 128, 256 пикселей. Данные в значках обычно не сжимаются.  Значки бывают в цвете True Color, High Color , или с четко фиксированной палитрой. По своей  структуре файлы ICO наиболее близки к BMP формату, но отличаются от bmp присутствием  маски, накладываемой на задний план с помощью операции побитового «И», что дает возможность реализовать прозрачность.

Наложение основного изображения при помощи «исключающего ИЛИ» может даже инвертировать пиксели там,  где задний план был не замаскирован. А уже  с Windows XP начали поддерживаться 32-битные иконки — каждому пикселю соответствует 24-бита цвета плюс  8-битный альфа-канал, который позволяет реализовать частичную прозрачность 256 уровней. При помощи  альфа-канала  также имеется возможность отобразить  значок  со сглаженными краями а также с  тенью, сочетать с разным фоном, маска значка в этом в таком случае игнорируется.

CDRCDR – это векторный формат изображения или рисунка, созданный при помощи программы CorelDRAW.  Данный формат разработан компанией Corel для его использования в собственных программных продуктах компании. CDR — изображения не поддерживаются многими графическими редакторами. Но это не проблема, файл можно легко экспортировать при помощи все того же CorelDRAW в более распространенные форматы изображений. Изображения, созданные в CorelDRAW и имеющие расширение CDR также можно открыть программой Corel Paint Shop Pro. Для наилучшей совместимости, компания Corel рекомендует сохранять файлы в CorelDRAW формате CDR более ранней версии. Файлы CDR десятой и более ранней версии, можно открыть используя и программу Adobe Illustrator.

AIAI  — это векторный формат изображений, название которого произошло от сокращения имени векторного редактора AdobeIllustrator. Поддерживается практически всеми графическими программами, которые каким либо образом связанны с векторной графикой. Ai является одним из лучших промежуточных посредников для передачи изображения из одного редактора в другой. Отличительной и очень важной чертой формата является его наибольшая стабильность и совместимость с PostScript, что представляет большую ценность для издательств полиграфической продукции.

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

RAW — файлы у ряда производителей фотокамер, имеют собственный формат расширения такой как у Canon – CR2, Nikon – NEF. У многих других предложенный Adobe формат DNG, это такие компании как Leica, Hasselblad, Samsung, Pentax, Ricoh. Если в фотошопе отсутствует камера raw для вашего фотоаппарата, то файлы не откроются, для этих целей создана утилита для конвертирования raw от адобе.

формат svgSVG – формат масштабируемой векторной графики (Scalable Vector Graphics). Формат создан W3C. В соответствие со спецификацией он создан для описания двумерной векторной и смешанной векторной/растровой  графики в XML. Включает в себя три типа объектов: фигуры, изображения и текст.  Поддерживает неподвижную,  анимированную так и интерактивную графику. Создавать и редактировать можно как в текстовых редакторов посредством правки кода, так и в любом графическом редакторе для векторной графики (Adobe Illustrator, Inkscape, CorelDRAW, Corel SVG Viewer). SVG – это открытый стандарт не является чьей либо собственностью.

Из достоинств формата SVG можно выделить. Масштабируемость без потери качества изображения. Текст в SVG является текстом, а не изображением, благодаря этому его можно выделять, копировать, он индексируется поисковиками (при использование на сайте). Интерактивность графики, дает возможность к каждому из элементов привязать свои события. Доступность использования растровой графики внутри документа. Анимация, которая реализована в SVG с помощью языка SMIL. Совместимость с CSS, дает возможность задавать свойства объектов такие как, цвет, фон, прозрачность и др.. SVG легко интегрируются с HTML и XHTML документами. Уменьшение количества запросов HTTP. Небольшой вес файла по сравнению с растровой графикой.

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

По сравнению с PNG изображениями формат WebP имеет вес на 26% меньше без потери качества. По сравнению с изображениями JPEG формата WebP на 25-34% меньше весит, но с потерями качества по индексу структурного сходства.

  • Поддерживает прозрачность (альфа-канал).
  • WebP поддерживается в Chrome, Firefox, Edge, Opera и других инструментах и ​​библиотеках. При разработке сайтов для корректного отображения в браузерах, которые не поддерживают WebP формат, рекомендуется использовать поддержку альтернативных изображений.
  • Включает легкую библиотеку libwebp для кодирования и декодирования.
  • Инструменты командной строки cwebp и dwebp для преобразования изображений в формат WebP и обратно.
  • Инструменты просмотра, мультиплексирования (передача нескольких потоков данных с меньшей скоростью по одному каналу) и анимации изображений WebP.

AVIFAVIF – (AV1 Still Image File Format) эффективный формат сжатия изображения с потерей качества, основанный на библиотеке для сжатия кадров кодека AV1. AVIF – бесплатный формат, совместимый с HEIF. Может хорошо обработать изображение, получив небольшой вес файла с высокой детализацией. Обеспечивает быструю загрузку изображений на сайтах в Интернете.

  • Поддерживает прозрачность (альфа-канал).
  • Может хранить несколько изображений.
  • Поддерживает анимацию.
  • Имеет стандарт EXIF (позволяет добавлять к изображению дополнительную информацию). Например, авторство.
  • Поддерживает миниатюры изображения.
  • Имеет преимущества по сжатию: примерно на 20% сжимает лучше WebP и на 50% чем Jpg.

Конвертировать изображение в .avif файл можно в сервисе Squoosh.
Расширение файлов: .avif

Форматы графических файлов. Растровые и векторные форматы.

Информация в разделе по материалам ВикипедиЯ

Формат TIFF

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

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

  • Бинарном (двуцветном, иногда называемом чёрно-белым)
  • Полутоновом
  • С индексированной палитрой
  • RGB
  • CMYK
  • YCbCr
  • CIE Lab

Поддерживаются режимы 8, 16, 32 и 64 бит на канал.

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

  • PackBits (RLE)
  • Lempel-Ziv-Welch (LZW)
  • LZ77
  • ZIP
  • JBIG
  • JPEG
  • CCITT Group 3, CCITT Group 4

Алгоритмы CCITT Group 3, CCITT Group 4 первоначально были разработаны для сетей факсимильной связи (поэтому иногда их называют Fax 3, Fax 4). В настоящий момент они также используются в полиграфии, системах цифровой картографии и географических информационных системах.

TIFF является теговым форматом и в нём используются основные, расширенные и специальные теги:

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

Формат JPEG

JPEG ( англ. Joint Photographic Experts Group, по названию организации-разработчика) — один из популярных графических форматов, применяемый для хранения фотоизображений. Файлы, содержащие данные JPEG, обычно имеют расширения  .jpeg, .jfif, .jpg, .JPG, или .JPE.  Алгоритм JPEG позволяет сжимать изображение как с потерями, так и без потерь.

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

С другой стороны, JPEG малопригоден для сжатия чертежей, текстовой и знаковой графики, где резкий контраст между соседними пикселами приводит к появлению заметных артефактов. Такие изображения целесообразно сохранять в форматах без потерь, таких как TIFF, GIF или PNG.

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

К недостаткам сжатия по стандарту JPEG следует отнести появление на восстановленных изображениях при высоких степенях сжатия характерных артефактов: изображение рассыпается на блоки размером 8×8 пикселов (этот эффект особенно заметен на областях изображения с плавными изменениями яркости), в областях с высокой пространственной частотой (например, на контрастных контурах и границах изображения) возникают артефакты в виде шумовых ореолов. 

Однако, несмотря на недостатки, JPEG получил очень широкое распространение из-за достаточно высокой степени сжатия, поддержке сжатия полноцветных изображений и относительно невысокой вычислительной сложности.

Формат PDF

PDF (англ. Portable Document Format) — кроссплатформенный формат электронных документов, созданный фирмой Adobe Systems с использованием ряда возможностей языка PostScript. Чаще всего PDF-файл является комбинацией текста с растровой и векторной графикой, реже — текста с формами, JavaScript’ом, 3D-графикой и другими типами элементов. В первую очередь предназначен для представления в электронном виде полиграфической продукции, — значительное количество современного профессионального печатного оборудования может обрабатывать PDF непосредственно. Для просмотра можно использовать официальную бесплатную программу Adobe Reader, а также программы сторонних разработчиков. Традиционным способом создания PDF-документов является виртуальный принтер, то есть документ как таковой готовится в своей специализированной программе — графической программе или текстовом редакторе, САПР и т. д., а затем экспортируется в формат PDF для распространения в электронном виде, передачи в типографию и т. п. PDF.

Формат PDF позволяет внедрять необходимые шрифты (построчный текст), векторные и растровые изображения, формы и мультимедиа-вставки. Поддерживает RGB, CMYK, Grayscale, Lab, Duotone, Bitmap, несколько типов сжатия растровой информации. Имеет собственные технические форматы для полиграфии: PDF/X-1, PDF/X-3. Включает механизм электронных подписей для защиты и проверки подлинности документов. В этом формате распространяется большое количество сопутствующей документации.

Формат CALS

Растровый формат CALS (англ. Computer Aided Acquisition and Logistics Support) стардарт, разработанный подразделением министерства обороны США для стандартизации обмена графическими данными в электронном виде, особеннв в областях технической графики, CAD/CAM и приложений обработки изображений.

CALS — хорошо документированный, хотя и громоздкий, формат, в котором сделана попытка охватить многие вещи. Если вы не знакомы с документами правительства США, вам, вомзожно, покажется работа с данным форматом весьма сложной. Растровый формат CALS является необходимым в большинстве приложений, обрабатывающих документы правительства США. Поскольку все данные имеют байтовую организацию проблем типа «с какого конца разбить яйцо тупого или острого » никогда не возникает.

Характеристики формата CALS

  • Тип — Bitmap (битовая матрица)
  • Цвет — монохром
  • Сжатие — CCITT Group 4 или без сжатия
  • Максимальный размер изображения — неограничен
  • Несколько изображений в файле — да, только для Type II
  • Платформы — все

Формат BMP

BMP (от англ. Bitmap Picture) — формат хранения растровых изображений, разработанный компанией Microsoft. С форматом BMP работает огромное количество программ, так как его поддержка интегрирована в операционные системы Windows и OS/2. Файлы формата BMP могут иметь расширения .bmp, .dib и .rle. 

Глубина цвета в данном формате может быть 1, 2, 4, 8, 16, 24, 32, 48 бит на пиксель, но глубина 2 бита на пиксель официально не поддерживается. При этом для глубины цвета меньше 16 бит используется палитра с полноцветными компонентами глубиной 24 бита. В формате BMP изображения могут храниться как есть или же с применением некоторых распространённых алгоритмов сжатия. В частности, формат BMP поддерживает RLE-сжатие без потери качества, а современные операционные системы и программное обеспечение позволяют использовать JPEG и PNG.

Формат PCX

PCX (PCExchange) — стандарт представления графической информации, не столь популярный аналог BMP, хотя поддерживается специфическими графическими редакторами, такими как Adobe Photoshop, Corel Draw, GIMP и др. В настоящее время практически вытеснен форматами, которые поддерживают лучшее сжатие: GIF, JPEG и PNG.

Тип формата — растровый. Большинство файлов такого типа использует стандартную палитру цветов, но формат был расширен из расчета на хранение 24-битных изображений. PCX — аппаратно-зависимый формат. Предназначается для хранения информации в файле в таком же виде, как и в видеоплате. Для совместимости со старыми программами необходима поддержка EGA-режима видеоконтроллером. Алгоритм такого сжатия очень быстрый и занимает небольшой объём памяти, однако не очень эффективен, непрактичен для сжатия фотографий и более детальной компьютерной графики. Используется сжатие без потерь. При сохранении изображения подряд идущие пиксели одинакового цвета объединяются и вместо указания цвета для каждого пикселя указывается цвет группы пикселей и их количество. Такой алгоритм хорошо сжимает изображения, в которых присутствуют области одного цвета.

Достоинства формата

  • возможность создания ограниченной палитры цветов (например, 16 или 256 цветов);
  • поддерживается большим количеством приложений.

Недостатки формата

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

Формат PNG

PNG (англ. portable network graphics) — растровый формат хранения графической информации, использующий сжатие без потерь.

Область применения

Формат PNG спроектирован для замены устаревшего и более простого формата GIF, а также, в некоторой степени, для замены значительно более сложного формата TIFF. Формат PNG позиционируется прежде всего для использования в Интернете и редактирования графики.

PNG поддерживает три основных типа растровых изображений:

  • Полутоновое изображение (с глубиной цвета 16 бит)
  • Цветное индексированное изображение (палитра 8 бит для цвета глубиной 24 бит)
  • Полноцветное изображение (с глубиной цвета 48 бит)

Формат PNG хранит графическую информацию в сжатом виде. Причём это сжатие производится без потерь, в отличие, например, от JPEG с потерями. Формат PNG обладает более высокой степенью сжатия для файлов с большим количеством цветов, чем GIF, но разница составляет около 5-25 %, что недостаточно для абсолютного преобладания формата, так как небольшие 2-16-цветные файлы формат GIF сжимает с не меньшей эффективностью.

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

Анимация

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

Формат Sun Raster

Формат изображений Sun Raster это родной растровый формат платформ Sun Microsystems использующих операционную систему SunOS. Этот формат поддерживает черно-белые, полутоновые и цветные растровые данные произвольной глубины цвета. Поддерживается также использование цветовых карт и простой компрессии данных Run-Length. Обычно большинство изображений в операционной системе SunOS представлены в формате Sun Raster. Также этот формат поддерживается большинством программ работы с изображениями под UNIX.

 Характеристики формата Sun Raster

  • Тип — bitmap (битовая матрица)
  • Цвета — различные
  • Сжатие — RLE
  • Несколько изображений в файле — не поддерживается
  • Платформа — SunOS
  • Приложения — многие приложения под UNIX

Понравилась статья? Поделить с друзьями:
  • Как пишется графический диктант
  • Как пишется графический дизайнер
  • Как пишется графически
  • Как пишется грамм во множественном числе
  • Как пишется графическая схема предложения