Share via


Funções de bitmap (GDI+)

O Windows GDI+ expõe uma API simples que consiste em cerca de 600 funções, que são implementadas em Gdiplus.dll e declaradas em Gdiplusflat.h. As funções na API plana GDI+ são encapsuladas por uma coleção de cerca de 40 classes C++. É recomendável que você não chame diretamente as funções na API simples. Sempre que você fizer chamadas para GDI+, deverá fazer isso chamando os métodos e as funções fornecidos pelos wrappers C++. Os Serviços de Suporte a Produtos da Microsoft não fornecerão suporte para o código que chama a API simples diretamente. Para obter mais informações sobre como usar esses métodos wrapper, consulte API Simples GDI+.

As seguintes funções de API simples são encapsuladas pela classe C++ do Bitmap .

Funções bitmap e métodos wrapper correspondentes

Função simples Método Wrapper Descrição
GpStatus WINGDIPAPI GdipCreateBitmapFromStream(IStream* stream, GpBitmap **bitmap) Bitmap::Bitmap Cria um objeto Bitmap::Bitmap com base em um fluxo. Essa função não usa o ICM (Gerenciamento de Cores de Imagem). Ele é chamado quando o parâmetro useEmbeddedColorManagement do construtor Bitmap::Bitmap é definido como FALSE.
GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR* filename, GpBitmap **bitmap) Bitmap::Bitmap Cria um objeto Bitmap::Bitmap com base em um arquivo de imagem. Essa função não usa ICM. Ele é chamado quando o parâmetro useEmbeddedColorManagement do construtor Bitmap::Bitmap é definido como FALSE.
GpStatus WINGDIPAPI GdipCreateBitmapFromStreamICM(IStream* stream, GpBitmap **bitmap) Bitmap::Bitmap Cria um objeto Bitmap::Bitmap com base em um fluxo. Essa função usa ICM. Ele é chamado quando o parâmetro useEmbeddedColorManagement do construtor Bitmap::Bitmap é definido como TRUE.
GpStatus WINGDIPAPI GdipCreateBitmapFromFileICM(GDIPCONST WCHAR* filename, GpBitmap **bitmap) Bitmap::Bitmap Cria um objeto Bitmap::Bitmap com base em um arquivo de imagem. Essa função usa ICM. Ele é chamado quando o parâmetro useEmbeddedColorManagement do construtor Bitmap::Bitmap é definido como TRUE.
GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(Largura INT, altura INT, passo INT, formato PixelFormat, BYTE* scan0, bitmap GpBitmap**) Bitmap::Bitmap Cria um objeto Bitmap::Bitmap com base em uma matriz de bytes, juntamente com informações de tamanho e formato.
GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(largura INT, altura INT, destino GpGraphics*, gpBitmap** bitmap) Bitmap::Bitmap Cria um objeto Bitmap::Bitmap com base em um objeto Graphics , uma largura e uma altura.
GpStatus WINGDIPAPI GdipCreateBitmapFromDirectDrawSurface(IDirectDrawSurface7* surface, GpBitmap** bitmap) Bitmap::Bitmap Cria um objeto Bitmap::Bitmap com base em uma superfície DirectDraw. O objeto Bitmap::Bitmap mantém uma referência à superfície DirectDraw até que o objeto Bitmap::Bitmap seja excluído ou saia do escopo.
GpStatus WINGDIPAPI GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO* gdiBitmapInfo, VOID* gdiBitmapData, GpBitmap** bitmap) Bitmap::Bitmap Cria um objeto Bitmap::Bitmap com base em uma estrutura BITMAPINFO e uma matriz de dados de pixel.
GpStatus WINGDIPAPI GdipCreateBitmapFromHBITMAP(HBITMAP hbm, HPALETTE hpal, GpBitmap** bitmap) Bitmap::Bitmap Cria um objeto Bitmap::Bitmap com base em um identificador para um bitmap da GDI (Interface de Dispositivo Gráfico) do Windows Windows e um identificador para uma paleta GDI.
GpStatus WINGDIPAPI GdipCreateHBITMAPFromBitmap(GpBitmap* bitmap, HBITMAP* hbmReturn, plano de fundo ARGB) Bitmap::GetHBITMAP O método Bitmap::GetHBITMAP cria um bitmap GDI desse objeto Bitmap .
GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON hicon, GpBitmap** bitmap) Bitmap::Bitmap Cria um objeto Bitmap com base em um ícone.
GpStatus WINGDIPAPI GdipCreateHICONFromBitmap(GpBitmap* bitmap, HICON* hbmReturn) Bitmap::GetHICON O método Bitmap::GetHICON cria um ícone desse objeto Bitmap .
GpStatus WINGDIPAPI GdipCreateBitmapFromResource(HINSTANCE hInstance, GDIPCONST WCHAR* lpBitmapName, GpBitmap** bitmap) Bitmap::Bitmap Cria um objeto Bitmap::Bitmap com base em um identificador de instância de aplicativo ou DLL e no nome de um recurso de bitmap.
GpStatus WINGDIPAPI GdipCloneBitmapArea(REAL x, REAL y, largura REAL, altura REAL, formato PixelFormat, GpBitmap *srcBitmap, GpBitmap **dstBitmap) Bitmap::Clone O método Bitmap::Clone cria um novo objeto Bitmap copiando uma parte desse bitmap.
GpStatus WINGDIPAPI GdipCloneBitmapAreaI(INT x, INT y, largura INT, altura INT, formato PixelFormat, GpBitmap *srcBitmap, GpBitmap **dstBitmap) Bitmap::Clone O método Bitmap::Clone cria um novo objeto Bitmap copiando uma parte desse bitmap.
GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap* bitmap, GDIPCONST GpRect* rect, sinalizadores UINT, formato PixelFormat, BitmapData* lockedBitmapData) Bitmap::LockBits O método Bitmap::LockBits bloqueia uma parte retangular desse bitmap e fornece um buffer temporário que você pode usar para ler ou gravar dados de pixel em um formato especificado. Todos os dados de pixel que você grava no buffer são copiados para o objeto Bitmap quando você chama Bitmap::UnlockBits.
GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap* bitmap, BitmapData* lockedBitmapData) Bitmap::UnlockBits O método Bitmap::UnlockBits desbloqueia uma parte desse bitmap que foi bloqueada anteriormente por uma chamada para Bitmap::LockBits.
GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap* bitmap, INT x, INT y, ARGB *color) Bitmap::GetPixel O método Bitmap::GetPixel obtém a cor de um pixel especificado neste bitmap.
GpStatus WINGDIPAPI GdipBitmapSetPixel(GpBitmap* bitmap, INT x, INT y, ARGB color) Bitmap::SetPixel O método Bitmap::SetPixel define a cor de um pixel especificado neste bitmap.
GpStatus WINGDIPAPI GdipBitmapSetResolution(GpBitmap* bitmap, REAL xdpi, REAL ydpi) Bitmap::SetResolution O método Bitmap::SetResolution define a resolução desse objeto Bitmap .
GpStatus WINGDIPAPI GdipBitmapConvertFormat(IN GpBitmap *pInputBitmap, formato PixelFormat, dithertype DitherType, PaletteType palettetype, ColorPalette *palette, REAL alphaThresholdPercent) Bitmap::ConvertFormat O método Bitmap::ConvertFormat converte um bitmap em um formato de pixel especificado. Os dados de pixel originais no bitmap são substituídos pelos novos dados de pixel.
GpStatus WINGDIPAPI GdipInitializePalette(OUT ColorPalette *palette, PaletteType palettetype, INT optimalColors, BOOL useTransparentColor, GpBitmap *bitmap) Bitmap::InitializePalette O método Bitmap::InitializePalette inicializa uma paleta de cores padrão, ideal ou personalizada.
GpStatus WINGDIPAPI GdipBitmapApplyEffect(GpBitmap* bitmap, CGpEffect *effect, RECT *roi, BOOL useAuxData, VOID **auxData, INT *auxDataSize) Bitmap::ApplyEffect O método Bitmap::ApplyEffect altera esse objeto Bitmap aplicando um efeito especificado.
GpStatus WINGDIPAPI GdipBitmapCreateApplyEffect(GpBitmap **inputBitmaps, INT numInputs, CGpEffect *effect, RECT *roi, RECT *outputRect, GpBitmap **outputBitmap, BOOL useAuxData, VOID **auxData, INT *auxDataSize) Bitmap::ApplyEffect O método Bitmap::ApplyEffect cria um novo objeto Bitmap aplicando um efeito especificado a um objeto Bitmap existente.
GpStatus WINGDIPAPI GdipBitmapGetHistogram(GpBitmap* bitmap, IN HistogramFormat format, IN UINT NumberOfEntries, OUT UINT *channel0, OUT UINT *channel1, OUT UINT *channel2, OUT UINT *channel3) Bitmap::GetHistogram O método Bitmap::GetHistogram retorna um ou mais histogramas para canais de cores especificados deste objeto Bitmap .
GpStatus WINGDIPAPI GdipBitmapGetHistogramSize(IN HistogramFormat format, OUT UINT *NumberOfEntries) Bitmap::GetHistogramSize O Bitmap::GetHistogramSize retorna o número de elementos (em uma matriz de UINTs) que você deve alocar antes de chamar o método Bitmap::GetHistogram de um objeto Bitmap .
Status __stdcall GdipCreateEffect(const GUID guid, CGpEffect **effect) Efeito Os construtores de todos os descendentes da classe Effect chamam GdipCreateEffect. Por exemplo, o construtor Blur faz a seguinte chamada: GdipCreateEffect(BlurEffectGuid, &nativeEffect); BlurEffectGuid é uma constante definida em Gdipluseffects.h.
Status __stdcall GdipDeleteEffect(CGpEffect *effect) virtual ~Effect() Limpa os recursos usados por um objeto Bitmap .
Status __stdcall GdipGetEffectParameterSize(CGpEffect *effect, UINT *size) Effect::GetParameterSize O método Effect::GetParameterSize obtém o tamanho total, em bytes, dos parâmetros atualmente definidos para este Efeito. O método Effect::GetParameterSize geralmente é chamado em um objeto que é uma instância de um descendente da classe Effect .
Status __stdcall GdipSetEffectParameters(CGpEffect *effect, const VOID *params, const UINT size) Efeito Cada descendente da classe Effect tem um método SetParameters que chama o método protegido Effect::SetParameters, que por sua vez chama GdipSetEffectParameters. Por exemplo, o método Blur::SetParameters faz a seguinte chamada: Effect::SetParameters(parameters, size).
Status __stdcall GdipGetEffectParameters(CGpEffect *effect, UINT *size, VOID *params) Efeito Cada descendente da classe Effect tem um método GetParameters que chama o método protegido Effect::GetParameters, que por sua vez chama GdipSetEffectParameters. Por exemplo, o método Blur::GetParameters faz a seguinte chamada: Effect::GetParameters(parameters, size).
GpStatus WINGDIPAPI GdipTestControl(controle GpTestControlEnum, void * param) Não chamado por wrappers Usado para teste interno de GDI+. Especifica alterações no comportamento de processamento de imagens. O significado do parâmetro param varia dependendo do valor passado no parâmetro de controle .
Se o parâmetro de controle for definido como TestControlForceBilinear, param apontará para um valor do tipo BOOL. Se esse valor for TRUE e o modo de interpolação atual for diferente de InterpolationModeNearestNeighbor, o algoritmo InterpolationModeBilinear será usado. Se o valor apontado por param for FALSE ou se o modo de interpolação atual for InterpolationModeNearestNeighbor, o comportamento de GDI+ será inalterado.
Se o parâmetro de controle for definido como TestControlNoICM, param apontará para um valor do tipo BOOL. Se esse valor for TRUE, os perfis ICM serão ignorados quando as imagens forem carregadas na memória. Se o valor apontado por param for FALSE, o comportamento de GDI+ será inalterado.
Se o parâmetro de controle for definido como TestControlGetBuildNumber, param será um parâmetro de saída que aponta para uma variável de inteiro de 32 bits. Essa variável recebe o número de build GDI+.
GdipTestControl não é thread-safe; ele pressupõe que há apenas um thread usando GDI+. Se você chamar GdipTestControl em um ambiente multithreaded, os resultados serão imprevisíveis.
A enumeração GpTestControlEnum tem três elementos: TestControlForceBilinear = 0, TestControlNoICM = 1 e TestControlGetBuildNumber = 2.