logo
CSharp_Graphics

Сглаживание

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

-------------

Antialiasing, also called smoothing, can also be applied to curves. The following illustration shows an enlarged view of a smoothed ellipse.

The following illustration shows the same ellipse in its actual size, once without antialiasing and once with antialiasing.

To draw lines and curves that use antialiasing, create an instance of the Graphics class and set its SmoothingMode property to AntiAlias or HighQuality. Then call one of the drawing methods of that same Graphics class.

myGraphics.SmoothingMode = SmoothingMode.AntiAlias;

myGraphics.DrawLine(myPen, 0, 0, 12, 8);

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

На приведенном ниже рисунке тот же эллипс изображен в натуральную величину в двух вариантах — с применением и без применения сглаживания.

Чтобы рисовать прямые и кривые линии с использованием сглаживания, создайте экземпляр класса Graphics и присвойте его свойству SmoothingMode значение AntiAlias или HighQuality. После этого вызовите один из методов рисования этого же класса Graphics.

-------------

Images, Bitmaps, and Metafiles

The Image class is an abstract base class that provides methods for working with raster images (bitmaps) and vector images (metafiles). The Bitmap class and the Metafile class both inherit from the Image class. The Bitmap class expands on the capabilities of the Image class by providing additional methods for loading, saving, and manipulating raster images. The Metafile class expands on the capabilities of the Image class by providing additional methods for recording and examining vector images.

Types of Bitmaps

A bitmap is an array of bits that specify the color of each pixel in a rectangular array of pixels. The number of bits devoted to an individual pixel determines the number of colors that can be assigned to that pixel. For example, if each pixel is represented by 4 bits, then a given pixel can be assigned one of 16 different colors (2^4 = 16). The following table shows a few examples of the number of colors that can be assigned to a pixel represented by a given number of bits.

Bits per pixel

Number of colors that can be assigned to a pixel

1

2^1 = 2

2

2^2 = 4

4

2^4 = 16

8

2^8 = 256

16

2^16 = 65,536

24

2^24 = 16,777,216

Disk files that store bitmaps usually contain one or more information blocks that store information such as the number of bits per pixel, number of pixels in each row, and number of rows in the array. Such a file might also contain a color table (sometimes called a color palette). A color table maps numbers in the bitmap to specific colors. The following illustration shows an enlarged image along with its bitmap and color table. Each pixel is represented by a 4-bit number, so there are 2^4 = 16 colors in the color table. Each color in the table is represented by a 24-bit number: 8 bits for red, 8 bits for green, and 8 bits for blue. The numbers are shown in hexadecimal (base 16) form: A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.