Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_Graphics.doc
Скачиваний:
20
Добавлен:
16.11.2019
Размер:
3.1 Mб
Скачать

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

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

BMP

BMP — это стандартный формат, используемый в Windows для хранения аппаратно- и программно-независимых изображений. Количество битов, сопоставленных в данном файле BMP одной точке (1, 4, 8, 15, 24, 32 или 64), указывается в заголовке файла. Наиболее часто используются файлы BMP, в которых каждой точке соответствует 24 бита. Обычно файлы BMP не подвергаются сжатию, поэтому этот формат плохо подходит для передачи данных через Интернет.

GIF (Graphics Interchange Format)

Изображения в формате GIF часто размещаются на веб-страницах. Файлы GIF хорошо подходят для хранения изображений, образованных линиями, рисунков со сплошными блоками одного цвета и рисунков с четкой границей между различными цветами. Файлы GIF подвергаются сжатию, но сжатие происходит без потерь. Восстановленное после сжатия изображение полностью совпадает с исходным изображением. Один цвет в изображении формата GIF можно сделать прозрачным, так что через изображение в качестве фона будет проглядывать веб-страница, на которой размещено это изображение. Последовательность изображений GIF можно сохранять в одном файле, что позволяет создавать анимированные изображения GIF. Изображения формата GIF могут содержать не более 8 бит на точку, поэтому в таких изображениях можно использовать не более 256 цветов.

JPEG (Joint Photographic Experts Group)

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

Степень сжатия изображений с помощью схемы JPEG можно настраивать, но большая степень сжатия (позволяющая получать меньшие файлы) приводит к росту потерь данных. Коэффициент сжатия 20:1 обычно позволяет получить изображение, которое человеческий глаз с трудом может отличить от оригинала. На приведенном ниже рисунке представлено изображение в формате BMP и два изображения JPEG, полученные в результате сжатия изображения в формате BMP. Первый рисунок JPEG получен с использованием коэффициента сжатия 4:1, а второй получен с использованием коэффициента сжатия 8:1.

JPEG compression does not work well for line drawings, blocks of solid color, and sharp boundaries. The following illustration shows a BMP along with two JPEGs and a GIF. The JPEGs and the GIF were compressed from the BMP. The compression ratio is 4:1 for the GIF, 4:1 for the smaller JPEG, and 8:3 for the larger JPEG. Note that the GIF maintains the sharp boundaries along the lines, but the JPEGs tend to blur the boundaries.

JPEG is a compression scheme, not a file format. JPEG File Interchange Format (JFIF) is a file format commonly used for storing and transferring images that have been compressed according to the JPEG scheme. JFIF files displayed by Web browsers use the .jpg extension.

Exchangeable Image File (EXIF)

EXIF is a file format used for photographs captured by digital cameras. An EXIF file contains an image that is compressed according to the JPEG specification. An EXIF file also contains information about the photograph (date taken, shutter speed, exposure time, and so on) and information about the camera (manufacturer, model, and so on).

--------

Используемый в схеме JPEG алгоритм сжатия плохо подходит для сжатия изображений, образованных линиями, сплошных блоков одного цвета и изображений с четкими границами между цветами. На приведенном ниже рисунке показано изображение в формате BMP, два изображения JPEG и одно изображение в формате GIF. Изображения JPEG и GIF были получены путем сжатия изображения в формате BMP. Для формата GIF и для меньшего изображения JPEG был задан коэффициент 4:1, а для большего изображения JPEG был задан коэффициент сжатия 8:3. Обратите внимание, что изображение в формате GIF сохраняет четкие границы вдоль линий, а на изображениях JPEG эти границы размываются.

----------

JPEG является схемой сжатия, а не файловым форматом. JPEG File Interchange Format (JFIF) — это файловый формат, обычно используемый для хранения и передачи изображений, сжатых по схеме JPEG. Файлы формата JFIF, отображаемые веб-обозревателями, обычно имеют расширение JPG.

EXIF (Exchangeable Image File)

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

Portable Network Graphics (PNG)

The PNG format retains many of the advantages of the GIF format but also provides capabilities beyond those of GIF. Like GIF files, PNG files are compressed with no loss of information. PNG files can store colors with 8, 24, or 48 bits per pixel and grayscales with 1, 2, 4, 8, or 16 bits per pixel. In contrast, GIF files can use only 1, 2, 4, or 8 bits per pixel. A PNG file can also store an alpha value for each pixel, which specifies the degree to which the color of that pixel is blended with the background color.

PNG improves on GIF in its ability to progressively display an image (that is, to display better and better approximations of the image as it arrives over a network connection). PNG files can contain gamma correction and color correction information so that the images can be accurately rendered on a variety of display devices.

Tag Image File Format (TIFF)

TIFF is a flexible and extendable format that is supported by a wide variety of platforms and image-processing applications. TIFF files can store images with an arbitrary number of bits per pixel and can employ a variety of compression algorithms. Several images can be stored in a single, multiple-page TIFF file. Information related to the image (scanner make, host computer, type of compression, orientation, samples per pixel, and so on) can be stored in the file and arranged through the use of tags. The TIFF format can be extended as needed by the approval and addition of new tags.

PNG (Portable Network Graphics)

Формат PNG сохраняет многие преимущества формата GIF, но также предоставляет многие возможности, недоступные в GIF. Как и в формате GIF, файлы PNG сжимаются без потери данных. Файлы PNG могут содержать цвета, задаваемые 8, 24 или 48 битами каждый, и оттенки серого, задаваемые 1, 2, 4, 8 или 16 битами на точку. В файлах GIF цвет одной точки можно задавать только 1, 2, 4 или 8 битами. В файлах PNG можно также задавать альфа-фактор для каждой точки, который определяет степень слияния цвета точки с цветом фона.

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

TIFF (Tag Image File Format)

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

Metafiles in GDI+

GDI+ provides the Metafile class so that you can record and display metafiles. A metafile, also called a vector image, is an image that is stored as a sequence of drawing commands and settings. The commands and settings recorded in a Metafile object can be stored in memory or saved to a file or stream.

Metafile Formats

GDI+ can display metafiles that have been stored in the following formats:

  • Windows Metafile (WMF)

  • Enhanced Metafile (EMF)

  • EMF+

GDI+ can record metafiles in the EMF and EMF+ formats, but not in the WMF format.

EMF+ is an extension to EMF that allows GDI+ records to be stored. There are two variations on the EMF+ format: EMF+ Only and EMF+ Dual. EMF+ Only metafiles contain only GDI+ records. Such metafiles can be displayed by GDI+ but not by GDI. EMF+ Dual metafiles contain GDI+ and GDI records. Each GDI+ record in an EMF+ Dual metafile is paired with an alternate GDI record. Such metafiles can be displayed by GDI+ or by GDI.

The following example displays a metafile that was previously saved as a file. The metafile is displayed with its upper-left corner at (100, 100).

public void Example_DisplayMetafile(PaintEventArgs e)

{

Graphics myGraphics = e.Graphics;

Metafile myMetafile = new Metafile("SampleMetafile.emf");

myGraphics.DrawImage(myMetafile, 100, 100);

}

Метафайлы в GDI+

В GDI+ имеется класс Metafile, позволяющий записывать и отображать метафайлы. Метафайл, также называемый векторным рисунком, — это изображение, сохраненное в виде последовательности команд и параметров рисования. Команды и параметры, сохраненные в объекте Metafile, могут быть сохранены в памяти или записаны в файл или в поток.