System.Drawing.Drawing2D Namespace

Fornece funcionalidade avançada de elementos gráficos bidimensionais e vetoriais.

Classes

Nome Description
AdjustableArrowCap

Representa uma tampa de linha em forma de seta ajustável. Essa classe não pode ser herdada.

Blend

Define um padrão de combinação para um LinearGradientBrush objeto. Essa classe não pode ser herdada.

ColorBlend

Define matrizes de cores e posições usadas para interpolar a mesclagem de cores em um gradiente multicolor. Essa classe não pode ser herdada.

CustomLineCap

Encapsula um limite de linha personalizado definido pelo usuário.

GraphicsContainer

Representa os dados internos de um contêiner de gráficos. Essa classe é usada ao salvar o estado de um Graphics objeto usando os métodos e EndContainer(GraphicsContainer) os BeginContainer() métodos. Essa classe não pode ser herdada.

GraphicsPath

Representa uma série de linhas e curvas conectadas. Essa classe não pode ser herdada.

GraphicsPathIterator

Fornece a capacidade de iterar por meio de subcaminhos em um GraphicsPath e testar os tipos de formas contidas em cada subcaminho. Essa classe não pode ser herdada.

GraphicsState

Representa o estado de um Graphics objeto. Esse objeto é retornado por uma chamada aos Save() métodos. Essa classe não pode ser herdada.

HatchBrush

Define um pincel retangular com um estilo de hatch, uma cor de primeiro plano e uma cor de plano de fundo. Essa classe não pode ser herdada.

LinearGradientBrush

Encapsula um Brush com um gradiente linear. Essa classe não pode ser herdada.

Matrix

Encapsula uma matriz de affine 3 por 3 que representa uma transformação geométrica. Essa classe não pode ser herdada.

PathData

Contém os dados gráficos que compõem um GraphicsPath objeto. Essa classe não pode ser herdada.

PathGradientBrush

Encapsula um Brush objeto que preenche o interior de um GraphicsPath objeto com um gradiente. Essa classe não pode ser herdada.

RegionData

Encapsula os dados que compõem um Region objeto. Essa classe não pode ser herdada.

Enumerações

Nome Description
CombineMode

Especifica como diferentes regiões de recorte podem ser combinadas.

CompositingMode

Especifica como as cores de origem são combinadas com as cores de plano de fundo.

CompositingQuality

Especifica o nível de qualidade a ser usado durante a composição.

CoordinateSpace

Especifica o sistema a ser usado ao avaliar coordenadas.

DashCap

Especifica o tipo de forma gráfica a ser usada em ambas as extremidades de cada traço em uma linha tracejada.

DashStyle

Especifica o estilo de linhas tracejadas desenhadas com um objeto Pen.

FillMode

Especifica como o interior de um caminho fechado é preenchido.

FlushIntention

Especifica se os comandos na pilha de gráficos são encerrados (liberados) imediatamente ou executados o mais rápido possível.

HatchStyle

Especifica os diferentes padrões disponíveis para objetos HatchBrush.

InterpolationMode

A enumeração InterpolationMode especifica o algoritmo usado quando as imagens são dimensionadas ou giradas.

LinearGradientMode

Especifica a direção de um gradiente linear.

LineCap

Especifica os estilos de limite disponíveis com os quais um objeto Pen pode terminar uma linha.

LineJoin

Especifica como unir segmentos de linha ou curva consecutivos em uma figura (subcaminho) contida em um objeto GraphicsPath.

MatrixOrder

Especifica a ordem para operações de transformação de matriz.

PathPointType

Especifica o tipo de ponto em um objeto GraphicsPath.

PenAlignment

Especifica o alinhamento de um objeto Pen em relação à linha teórica de largura zero.

PenType

Especifica o tipo de preenchimento que um objeto Pen usa para preencher linhas.

PixelOffsetMode

Especifica como os pixels são deslocados durante a renderização.

QualityMode

Especifica a qualidade geral ao renderizar objetos GDI+.

SmoothingMode

Especifica se a suavização (suavização) é aplicada a linhas e curvas e às bordas das áreas preenchidas.

WarpMode

Especifica o tipo de transformação de dobra aplicada em um método Warp.

WrapMode

Especifica como uma textura ou gradiente é em bloco quando é menor que a área que está sendo preenchida.

Comentários

Caution

O System.Drawing namespace tem algumas limitações para determinados sistemas operacionais e tipos de aplicativo.

  • Em Windows, System.Drawing depende da biblioteca nativa GDI+, que é enviada como parte do sistema operacional. Alguns SKUs Windows, como Windows Server Core ou Windows Nano, não incluem essa biblioteca nativa como parte do sistema operacional. Se você usar esse namespace e a biblioteca não puder ser carregada, as exceções serão geradas em tempo de execução.

  • Alguns tipos no namespace System.Drawing dependem do GDI+, que não tem suporte em serviços Windows e aplicativos ASP.NET Core e ASP.NET. Esses tipos estão no pacote NuGet System.Drawing.Common e incluem System.Drawing.Bitmap e System.Drawing.Font. No entanto, tipos primitivos no namespace, como System.Drawing.Color, System.Drawing.Size, System.Drawing.Pointe System.Drawing.Rectangle, podem ser usados em qualquer aplicativo.

  • Em .NET 5 e versões anteriores, o pacote NuGet System.Drawing.Common funciona em Windows, Linux e macOS. No entanto, há algumas diferenças de plataforma. No Linux e no macOS, a funcionalidade GDI+ é implementada pela biblioteca libgdiplus ). Essa biblioteca não é instalada por padrão na maioria das distribuições do Linux e não dá suporte a todas as funcionalidades do GDI+ em Windows e macOS. Há também plataformas em que o libgdiplus não está disponível. Para usar tipos do pacote System.Drawing.Common no Linux e no macOS, você deve instalar o libgdiplus separadamente. Para obter mais informações, consulte Instalar .NET no Linux ou Instalar .NET no macOS.

  • Nas versões .NET 6 e posteriores, o pacote NuGet System.Drawing.Common só tem suporte em sistemas operacionais Windows. Para obter mais informações, consulte System.Drawing.Common com suporte apenas no Windows.

Se você não puder usar System.Drawing com seu aplicativo, As alternativas recomendadas incluem ImageSharp, SkiaSharp, Windows Imaging Components e Microsoft. Maui.Graphics.

A tabela a seguir lista algumas das classes e enumerações importantes no System.Drawing.Drawing2D namespace, agrupadas em categorias.

Categoria de classe Detalhes
- Gráficos e caminhos gráficos As GraphicsState classes e as GraphicsContainer informações de relatório sobre o objeto atual Graphics . GraphicsPath as classes representam uma série de linhas e curvas. As GraphicsPathIterator classes e as PathData classes fornecem informações detalhadas sobre o conteúdo de um GraphicsPath objeto.
- Tipos relacionados à matriz e transformação A Matrix classe representa uma matriz para transformações geométricas. A MatrixOrder enumeração especifica a ordem para transformações de matriz.
- Classes de pincel As PathGradientBrush classes e as HatchBrush classes permitem que você preencha formas com um gradiente ou um padrão de escotilha, respectivamente.
- Enumeração relacionada a linhas As LineCap enumerações CustomLineCap permitem que você especifique estilos de limite para uma linha. LineJoin A enumeração permite que você especifique como duas linhas são unidas em um caminho. A PenAlignment enumeração permite que você especifique o alinhamento da dica de desenho ao desenhar uma linha. A PenType enumeração especifica o padrão com o qual uma linha deve ser preenchida.
- Enumerações relacionadas ao preenchimento de formas e caminhos A HatchStyle enumeração especifica estilos de preenchimento para um HatchBrush. A Blend classe especifica um padrão de combinação para um LinearGradientBrush. A FillMode enumeração especifica o estilo de preenchimento para um GraphicsPath.

Caution

Classes no namespace System.Drawing.Drawing2D não têm suporte para uso em um serviço de Windows ou ASP.NET. A tentativa de usar essas classes em um desses tipos de aplicativo pode produzir problemas inesperados, como redução do desempenho do serviço e exceções em tempo de execução.

Confira também