System.Drawing.Drawing2D Namespace

Fornece funcionalidade avançada bidimensional e de gráfico vetorial.

Classes

AdjustableArrowCap

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

Blend

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

ColorBlend

Define as matrizes de cores e as posições usadas para a interpolação da combinação de cores em um gradiente de várias cores. Essa classe não pode ser herdada.

CustomLineCap

Encapsula uma terminação de linha personalizada definida pelo usuário.

GraphicsContainer

Representa os dados internos de um contêiner de gráfico. Essa classe é usada ao salvar o estado de um objeto Graphics usando os métodos BeginContainer() e EndContainer(GraphicsContainer). 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 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 objeto Graphics. O objeto é retornado por uma chamada para os métodos Save(). Essa classe não pode ser herdada.

HatchBrush

Define um pincel retangular com um estilo de hachura, uma cor da tela de fundo e uma cor de primeiro plano. 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 afim 3 por 3 que representa uma transformação geométrica. Essa classe não pode ser herdada.

PathData

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

PathGradientBrush

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

RegionData

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

Enumerações

CombineMode

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

CompositingMode

Especifica como as cores de origem são combinadas com as cores da tela 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 as coordenadas.

DashCap

Especifica o tipo de forma do grafo a ser usada nas duas extremidades de cada traço na linha tracejada.

DashStyle

Especifica o estilo das 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 assim que possível.

HatchStyle

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

InterpolationMode

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

LinearGradientMode

Especifica a direção de um gradiente linear.

LineCap

Especifica os estilos de extremidade 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 de 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 é aplicada às linhas e às curvas e às bordas das áreas preenchidas.

WarpMode

Especifica o tipo de transformação de distorção aplicada a um método Warp.

WrapMode

Especifica como uma textura ou gradiente será organizado lado a lado quando for menor que a área sendo preenchida.

Comentários

Cuidado

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

  • No Windows, System.Drawing depende da biblioteca nativa GDI+, que é enviada como parte do sistema operacional. Alguns SKUs do Windows, como o Windows Server Core ou o 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 dependem do System.DrawingGDI+, que não tem suporte em serviços e aplicativos de ASP.NET Core e ASP.NET do Windows. 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.

  • No .NET 5 e em versões anteriores, o pacote NuGet System.Drawing.Common funciona no 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+ no Windows e no macOS. Também há 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 o .NET no Linux ou Instalar o .NET no macOS.

  • No .NET 6 e versões 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
- Caminhos gráficos e gráficos As GraphicsState classes e GraphicsContainer relatam informações sobre o objeto atual Graphics . GraphicsPath as classes representam uma série de linhas e curvas. As GraphicsPathIterator classes e PathData 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 das transformações de matriz.
– Classes brush As PathGradientBrush classes e HatchBrush permitem preencher formas com um gradiente ou um padrão de hachura, respectivamente.
- Enumeração relacionada a linhas As LineCap enumerações e CustomLineCap permitem que você especifique estilos de limite para uma linha. A enumeração , LineJoin 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 mesclagem para um LinearGradientBrush. A FillMode enumeração especifica o estilo de preenchimento de um GraphicsPath.

Cuidado

Não há suporte para classes no System.Drawing.Drawing2D namespace para uso em um serviço windows ou ASP.NET. Tentar usar essas classes em um desses tipos de aplicativo pode produzir problemas inesperados, como redução do desempenho do serviço e exceções de tempo de execução.

Confira também