Класс CImage

CImage обеспечивает расширенную поддержку растрового изображения, включая возможность загрузки и сохранения изображений в форматах JPEG, GIF, BMP и переносимой сетевой графики (PNG).

Важно!

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.

Синтаксис

class CImage

Участники

Открытые конструкторы

Имя Описание
CImage::CImage Конструктор.

Открытые методы

Имя Описание
CImage::AlphaBlend Отображает растровые изображения с прозрачными или полутранспарентными пикселями.
CImage::Attach Присоединяет объект HBITMAP к объекту CImage . Можно использовать либо с растровыми изображениями разделов, отличными от DIB, либо с растровыми изображениями раздела DIB.
CImage::BitBlt Копирует растровое изображение из исходного контекста устройства в текущий контекст устройства.
CImage::Create Создает растровое изображение раздела DIB и присоединяет его к ранее созданному CImage объекту.
CImage::CreateEx Создает растровое изображение раздела DIB (с дополнительными параметрами) и присоединяет его к ранее созданному CImage объекту.
CImage::Destroy Отсоединяет растровое изображение от CImage объекта и уничтожает растровое изображение.
CImage::Detach Отсоединяет растровое CImage изображение от объекта.
CImage::Draw Копирует растровое изображение из исходного прямоугольника в целевой прямоугольник. Draw растягивает или сжимает растровое изображение, чтобы соответствовать измерениям прямоугольника назначения при необходимости, а также обрабатывает альфа-смешение и прозрачные цвета.
CImage::GetBits Извлекает указатель на фактические значения пикселя растрового изображения.
CImage::GetBPP Извлекает биты на пиксель.
CImage::GetColorTable Извлекает значения цвета красного, зеленого, синего цвета (RGB) из диапазона записей в таблице цветов.
CImage::GetDC Извлекает контекст устройства, в котором выбрана текущая растровая карта.
CImage::GetExporterFilterString Находит доступные форматы изображений и их описания.
CImage::GetHeight Извлекает высоту текущего изображения в пикселях.
CImage::GetImporterFilterString Находит доступные форматы изображений и их описания.
CImage::GetMaxColorTableEntries Извлекает максимальное количество записей в таблице цветов.
CImage::GetPitch Извлекает поле текущего изображения в байтах.
CImage::GetPixel Извлекает цвет пикселя, заданного x и y.
CImage::GetPixelAddress Извлекает адрес заданного пикселя.
CImage::GetTransparentColor Извлекает положение прозрачного цвета в таблице цветов.
CImage::GetWidth Извлекает ширину текущего изображения в пикселях.
CImage::IsDIBSection Определяет, является ли присоединенная растровая карта разделом DIB.
CImage::IsIndexed Указывает, что цвета растрового изображения сопоставляются с индексированной палитрой.
CImage::IsNull Указывает, загружается ли в данный момент исходная растровая карта.
CImage::IsTransparencySupported Указывает, поддерживает ли приложение прозрачные растровые изображения.
CImage::Load Загружает изображение из указанного файла.
CImage::LoadFromResource Загружает изображение из указанного ресурса.
CImage::MaskBlt Объединяет данные цвета для исходных и целевых растровых изображений с помощью указанной операции маски и растра.
CImage::PlgBlt Выполняет передачу битового блока из прямоугольника в контекст исходного устройства в параллелограмму в контексте конечного устройства.
CImage::ReleaseDC Освобождает контекст устройства, полученный с CImage::GetDCпомощью .
CImage::ReleaseGDIPlus Освобождает ресурсы, используемые GDI+. Необходимо вызвать к свободным ресурсам, созданным глобальным CImage объектом.
CImage::Save Сохраняет изображение в качестве указанного типа. Save не указать параметры изображения.
CImage::SetColorTable Задает значения цвета красного, зеленого, синего RGB) в диапазоне записей в цветовой таблице раздела DIB.
CImage::SetPixel Задает пиксель в указанных координатах заданным цветом.
CImage::SetPixelIndexed Задает пиксель по указанным координатам цвету по указанному индексу палитры.
CImage::SetPixelRGB Задает пиксель по указанным координатам заданному красному, зеленому, синему (RGB) значению.
CImage::SetTransparentColor Задает индекс цвета, который будет рассматриваться как прозрачный. Только один цвет в палитре может быть прозрачным.
CImage::StretchBlt Копирует растровое изображение из исходного прямоугольника в прямоугольник назначения, растяжение или сжатие растрового изображения, чтобы при необходимости соответствовали измерениям прямоугольника назначения.
CImage::TransparentBlt Копирует растровое изображение с прозрачным цветом из исходного контекста устройства в текущий контекст устройства.

Открытые операторы

Имя Описание
CImage::operator HBITMAP Возвращает дескриптор Windows, подключенный к объекту CImage .

Замечания

CImage принимает растровые изображения, которые являются разделами, независимыми от устройства (DIB) или нет; однако можно использовать Create или CImage::Load только с разделами DIB. Вы можете подключить растровое изображение раздела, отличного CImage от DIB, к объекту с помощью Attach, но затем нельзя использовать следующие CImage методы, которые поддерживают только растровые изображения разделов DIB:

Чтобы определить, является ли подключенная растровая карта разделом DIB, вызовите вызов IsDibSection.

Примечание.

В Visual Studio .NET 2003 этот класс сохраняет количество созданных CImage объектов. Всякий раз, когда число переходит к 0, функция GdiplusShutdown автоматически вызывается для выпуска ресурсов, используемых GDI+. Это гарантирует, что все CImage объекты, созданные непосредственно или косвенно библиотекой DLL, всегда уничтожаются должным образом и GdiplusShutdown не вызываются из DllMain.

Примечание.

Использование глобальных CImage объектов в библиотеке DLL не рекомендуется. Если вам нужно использовать глобальный CImage объект в библиотеке DLL, вызовите CImage::ReleaseGDIPlus явный выпуск ресурсов, используемых GDI+.

CImage невозможно выбрать новый CDCобъект. CImage создает собственный HDC образ. HBITMAP Так как можно выбрать только один HDC раз, HBITMAP связанный с CImage ним не может быть выбран в другойHDC. Если вам нужен CDC, извлеките HDC его из CImage и присвойте ему CDC::FromHandle.

Примеры

// Get a CDC for the image
CDC* pDC = CDC::FromHandle(m_myImage.GetDC());

// Use pDC here
pDC->Rectangle(0, 40, 100, 50);
m_myImage.ReleaseDC();

При использовании CImage в проекте MFC обратите внимание, какие функции-члены в проекте ожидают указатель на CBitmap объект. Если вы хотите использовать CImage такую функцию, например CMenu::AppendMenu, используйте CBitmap::FromHandle, передайте ее CImageHBITMAPи используйте возвращенную CBitmap*функцию.

void CMyDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
    UNREFERENCED_PARAMETER(nFlags);

    CBitmap* pBitmap = CBitmap::FromHandle(m_myImage);
    m_pmenuPop->AppendMenu(0, ID_BMPCOMMAND, pBitmap);
    ClientToScreen(&point);
    m_pmenuPop->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN, point.x,
    point.y, this);
}

Через CImageнего вы можете получить доступ к фактическим битам раздела DIB. Вы можете использовать CImage объект в любом месте, где вы ранее использовали раздел Win32 HBITMAP или DIB.

Можно использовать CImage из MFC или ATL.

Примечание.

При создании проекта с помощью CImageнеобходимо определить CString перед включением atlimage.h. Если проект использует ATL без MFC, включите atlstr.h его перед включением atlimage.h. Если проект использует MFC (или если он является проектом ATL с поддержкой MFC), включите afxstr.h его перед включением atlimage.h.

Аналогичным образом необходимо включить перед включением atlimage.hatlimpl.cpp. Для этого легко включите atlimage.h (pch.hstdafx.hв Visual Studio 2017 и более ранних версий).

Требования

Заголовок.atlimage.h

CImage::AlphaBlend

Отображает растровые изображения с прозрачными или полутранспарентными пикселями.

BOOL AlphaBlend(
    HDC hDestDC,
    int xDest,
    int yDest,
    BYTE bSrcAlpha = 0xff,
    BYTE bBlendOp = AC_SRC_OVER) const throw();

BOOL AlphaBlend(
    HDC hDestDC,
    const POINT& pointDest,
    BYTE bSrcAlpha = 0xff,
    BYTE bBlendOp = AC_SRC_OVER) const throw();

BOOL AlphaBlend(
    HDC hDestDC,
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    BYTE bSrcAlpha = 0xff,
    BYTE bBlendOp = AC_SRC_OVER);

BOOL AlphaBlend(
    HDC hDestDC,
    const RECT& rectDest,
    const RECT& rectSrc,
    BYTE bSrcAlpha = 0xff,
    BYTE bBlendOp = AC_SRC_OVER);

Параметры

hDestDC
Обработка контекста целевого устройства.

xDest
Координата x в логических единицах левого верхнего угла прямоугольника назначения.

yDest
Координата y в логических единицах верхнего левого угла прямоугольника назначения.

bSrcAlpha
Значение альфа-прозрачности, которое будет использоваться во всей исходной растровой карте. Значение по умолчанию 0xff (255) предполагает, что изображение непрозрачно, и что вы хотите использовать только альфа-значения для каждого пикселя.

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

pointDest
Ссылка на POINT структуру, которая определяет левый верхний угол прямоугольника назначения в логических единицах.

nDestWidth
Ширина в логических единицах прямоугольника назначения.

nDestHeight
Высота в логических единицах прямоугольника назначения.

xSrc
Логическая координата x левого верхнего угла исходного прямоугольника.

ySrc
Логическая координата y левого верхнего угла исходного прямоугольника.

nSrcWidth
Ширина в логических единицах исходного прямоугольника.

nSrcHeight
Высота в логических единицах исходного прямоугольника.

rectDest
Ссылка на RECT структуру, определяющая назначение.

rectSrc
Ссылка на RECT структуру, определяющая источник.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Растровые изображения альфа-смешивания поддерживают смешивание цветов на основе пикселя.

Если bBlendOp задано значение по умолчанию AC_SRC_OVER, исходный растровый рисунок помещается над целевой растровой картой на основе альфа-значений исходных пикселей.

CImage::Attach

Присоединяется hBitmap к объекту CImage .

void Attach(HBITMAP hBitmap, DIBOrientation eOrientation = DIBOR_DEFAULT) throw();

Параметры

hBitmap
Дескриптор HBITMAP.

eOrientation
Указывает ориентацию растрового изображения. Может применяться один из перечисленных ниже типов.

  • DIBOR_DEFAULT Ориентация растрового изображения определяется операционной системой.

  • DIBOR_BOTTOMUP Строки растрового изображения находятся в обратном порядке. Это приводит CImage::GetBits к возврату указателя в конце буфера растрового изображения и CImage::GetPitch возврату отрицательного числа.

  • DIBOR_TOPDOWN Линии растрового рисунка находятся вверху до нижнего порядка. Это приводит CImage::GetBits к возврату указателя на первый байт буфера растрового изображения и CImage::GetPitch возврат положительного числа.

Замечания

Растровое изображение может быть либо растровым изображением раздела, отличной от DIB, либо растровым изображением раздела DIB. См IsDIBSection . список методов, которые можно использовать только с растровыми изображениями раздела DIB.

CImage::BitBlt

Копирует растровое изображение из исходного контекста устройства в текущий контекст устройства.

BOOL BitBlt(
    HDC hDestDC,
    int xDest,
    int yDest,
    DWORD dwROP = SRCCOPY) const throw();

BOOL BitBlt(
    HDC hDestDC,
    const POINT& pointDest,
    DWORD dwROP = SRCCOPY) const throw();

BOOL BitBlt(
    HDC hDestDC,
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    int xSrc,
    int ySrc,
    DWORD dwROP = SRCCOPY) const throw();

BOOL BitBlt(
    HDC hDestDC,
    const RECT& rectDest,
    const POINT& pointSrc,
    DWORD dwROP = SRCCOPY) const throw();

Параметры

hDestDC
Назначение HDC.

xDest
Логическая координата x левого верхнего угла прямоугольника назначения.

yDest
Логическая координата y левого верхнего угла прямоугольника назначения.

dwROP
Операция растра, выполняемая. Коды операций растра определяют точно, как объединить биты источника, назначения и шаблона (как определено выбранной в данный момент кистью) для формирования назначения. Ознакомьтесь BitBlt со списком других кодов операций с растрами и их описаниями в windows SDK.

pointDest
Структура POINT , указывающая левый верхний угол прямоугольника назначения.

nDestWidth
Ширина в логических единицах прямоугольника назначения.

nDestHeight
Высота в логических единицах прямоугольника назначения.

xSrc
Логическая координата x левого верхнего угла исходного прямоугольника.

ySrc
Логическая координата y левого верхнего угла исходного прямоугольника.

rectDest
Структура RECT , указывающая прямоугольник назначения.

pointSrc
Структура POINT , указывающая левый верхний угол исходного прямоугольника.

Возвращаемое значение

Ненулевое значение в случае успеха, иначе — 0.

Замечания

Дополнительные сведения см BitBlt . в пакете SDK для Windows.

CImage::CImage

Формирует объект CImage.

CImage() throw();

Замечания

После создания объекта, вызова CreateLoadили LoadFromResourceAttach подключения растрового изображения к объекту.

Примечание . В Visual Studio этот класс сохраняет количество созданных CImage объектов. Всякий раз, когда число переходит к 0, функция GdiplusShutdown автоматически вызывается для выпуска ресурсов, используемых GDI+. Это гарантирует, что все CImage объекты, созданные непосредственно или косвенно библиотекой DLL, всегда уничтожаются должным образом и не GdiplusShutdown вызываются из DllMain.

Использование глобальных CImage объектов в библиотеке DLL не рекомендуется. Если вам нужно использовать глобальный CImage объект в библиотеке DLL, вызовите CImage::ReleaseGDIPlus явный выпуск ресурсов, используемых GDI+.

CImage::Create

Создает растровое CImage изображение и присоединяет его к ранее созданному CImage объекту.

BOOL Create(
    int nWidth,
    int nHeight,
    int nBPP,
    DWORD dwFlags = 0) throw();

Параметры

nWidth
Ширина растрового CImage изображения в пикселях.

nHeight
Высота растрового CImage изображения в пикселях. Если nHeight это положительно, то растровое изображение — это нижний путь DIB, а его источник — левый нижний угол. Если nHeight это отрицательно, то растровое изображение является верхним вниз DIB, а его источником является верхний левый угол.

nBPP
Числа битов на пиксель в растровом рисунке. Обычно 4, 8, 16, 24 или 32. Может быть 1 для монохромных растровых изображений или маск.

dwFlags
Указывает, имеет ли объект растрового изображения альфа-канал. Может быть сочетанием нуля или нескольких следующих значений:

  • createAlphaChannel Можно использовать только в том случае, если nBPP значение равно 32 и eCompression имеет значение BI_RGB. Если задано, созданное изображение имеет альфа-значение (прозрачность) для каждого пикселя, хранящегося в 4-м байте каждого пикселя (неиспользуемом в 32-разрядном изображении). Этот альфа-канал автоматически используется при вызове CImage::AlphaBlend.

Примечание.

При вызовах CImage::Drawизображения с альфа-каналом автоматически смешиваются с назначением.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

CImage::CreateEx

Создает растровое CImage изображение и присоединяет его к ранее созданному CImage объекту.

BOOL CreateEx(
    int nWidth,
    int nHeight,
    int nBPP,
    DWORD eCompression,
    const DWORD* pdwBitmasks = NULL,
    DWORD dwFlags = 0) throw();

Параметры

nWidth
Ширина растрового CImage изображения в пикселях.

nHeight
Высота растрового CImage изображения в пикселях. Если nHeight это положительно, то растровое изображение — это нижний путь DIB, а его источник — левый нижний угол. Если nHeight это отрицательно, то растровое изображение является верхним вниз DIB, а его источником является верхний левый угол.

nBPP
Числа битов на пиксель в растровом рисунке. Обычно 4, 8, 16, 24 или 32. Может быть 1 для монохромных растровых изображений или маск.

eCompression
Указывает тип сжатия для сжатого нижнего нижнего растрового изображения (не удается сжать верхний вниз ДИБ). Может использоваться одно из следующих значений:

  • BI_RGB Формат распаковлен. Указание этого значения при вызове CImage::CreateEx эквивалентно вызову CImage::Create.

  • BI_BITFIELDS Формат распаковлен, а таблица цветов состоит из трех DWORD масок цвета, которые указывают красные, зеленые и синие компоненты соответственно каждого пикселя. Это допустимо при использовании с 16-32-bpp-растровыми изображениями.

pdwBitfields
Используется только в том случае, если eCompression задано BI_BITFIELDSзначение , в противном случае оно должно быть NULL. Указатель на массив трех DWORD битовых массивов, указывающий, какие биты каждого пикселя используются для красных, зеленых и синих компонентов цвета соответственно. Сведения об ограничениях для битовых полей см BITMAPINFOHEADER . в пакете SDK для Windows.

dwFlags
Указывает, имеет ли объект растрового изображения альфа-канал. Может быть сочетанием нуля или нескольких следующих значений:

  • createAlphaChannel Можно использовать только в том случае, если nBPP значение равно 32 и eCompression имеет значение BI_RGB. Если задано, созданное изображение имеет альфа-значение (прозрачность) для каждого пикселя, хранящегося в 4-м байте каждого пикселя (неиспользуемом в 32-разрядном изображении). Этот альфа-канал автоматически используется при вызове CImage::AlphaBlend.

    Примечание.

    При вызовах CImage::Drawизображения с альфа-каналом автоматически смешиваются с назначением.

Возвращаемое значение

TRUE в случае успешного выполнения. В противном случае — значение FALSE.

Пример

В следующем примере создается 100x100 пиксельная растровая карта, используя 16 битов для кодирования каждого пикселя. В заданном 16-разрядном пикселе биты 0-3 кодируют красный компонент, биты 4-7 кодируют зеленый цвет и биты 8-11 кодируют синий. Оставшиеся 4 бита не используются.

DWORD adwBitmasks[3] = { 0x0000000f, 0x000000f0, 0x00000f00 };
m_myImage.CreateEx(100, 100, 16, BI_BITFIELDS, adwBitmasks, 0);

CImage::Destroy

Отсоединяет растровое изображение от CImage объекта и уничтожает растровое изображение.

void Destroy() throw();

CImage::Detach

Отсоединяет растровое изображение от CImage объекта.

HBITMAP Detach() throw();

Возвращаемое значение

Дескриптор отсоединяемого растрового изображения или NULL если растровое изображение не подключено.

CImage::Draw

Копирует растровое изображение из исходного контекста устройства в текущий контекст устройства.

BOOL Draw(
    HDC hDestDC,
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight) const throw();

BOOL Draw(
    HDC hDestDC,
    const RECT& rectDest,
    const RECT& rectSrc) const throw();

BOOL Draw(
    HDC hDestDC,
    int xDest,
    int yDest) const throw();

BOOL Draw(
    HDC hDestDC,
    const POINT& pointDest) const throw();

BOOL Draw(
    HDC hDestDC,
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight) const throw();

BOOL Draw(
    HDC hDestDC,
    const RECT& rectDest) const throw();

Параметры

hDestDC
Дескриптор контекста конечного устройства.

xDest
Координата x в логических единицах левого верхнего угла прямоугольника назначения.

yDest
Координата y в логических единицах верхнего левого угла прямоугольника назначения.

nDestWidth
Ширина в логических единицах прямоугольника назначения.

nDestHeight
Высота в логических единицах прямоугольника назначения.

xSrc
Координата x в логических единицах левого верхнего угла исходного прямоугольника.

ySrc
Координата y в логических единицах верхнего левого угла исходного прямоугольника.

nSrcWidth
Ширина в логических единицах исходного прямоугольника.

nSrcHeight
Высота в логических единицах исходного прямоугольника.

rectDest
Ссылка на RECT структуру, определяющая назначение.

rectSrc
Ссылка на RECT структуру, определяющая источник.

pointDest
Ссылка на POINT структуру, которая определяет левый верхний угол прямоугольника назначения в логических единицах.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Draw выполняет ту же операцию, что StretchBltи изображение, если изображение не содержит прозрачный цвет или альфа-канал. В этом случае Draw выполняет ту же операцию, что TransparentBlt и AlphaBlend требуется.

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

CImage::GetBits

Извлекает указатель на фактические битовые значения заданного пикселя в растровом рисунке.

void* GetBits() throw();

Возвращаемое значение

Указатель на буфер растрового изображения. Если растровое изображение является нижней частью DIB, указатель указывает ближе к концу буфера. Если растровое изображение является верхним вниз DIB, указатель указывает на первый байт буфера.

Замечания

С помощью этого указателя вместе со значением, возвращаемым GetPitch, можно найти и изменить отдельные пиксели на изображении.

Примечание.

Этот метод поддерживает только растровые изображения раздела DIB; следовательно, вы обращаетесь к пикселям CImage объекта так же, как и пиксели раздела DIB. Возвращаемый указатель указывает на пиксель в расположении (0, 0).

CImage::GetBPP

Извлекает значение битов на пиксель.

int GetBPP() const throw();

Возвращаемое значение

Количество битов на пиксель.

Замечания

Это значение определяет количество битов, определяющих каждый пиксель и максимальное количество цветов в растровом рисунке.

Биты на пиксель обычно 1, 4, 8, 16, 24 или 32. biBitCount Дополнительные сведения об этом значении BITMAPINFOHEADER см. в пакете SDK для Windows.

CImage::GetColorTable

Извлекает значения цвета красного, зеленого, синего (RGB) из диапазона записей в палитре раздела DIB.

void GetColorTable(
    UINT iFirstColor,
    UINT nColors,
    RGBQUAD* prgbColors) const throw();

Параметры

iFirstColor
Индекс таблицы цветов первой записи для получения.

nColors
Количество извлекаемых записей таблицы цветов.

prgbColors
Указатель на массив RGBQUAD структур для получения записей таблицы цветов.

CImage::GetDC

Извлекает контекст устройства, на который в данный момент выбран образ.

HDC GetDC() const throw();

Возвращаемое значение

Дескриптор для контекста устройства.

Замечания

Для каждого вызова GetDCнеобходимо выполнить последующий вызов ReleaseDC.

CImage::GetExporterFilterString

Находит форматы изображений, доступные для сохранения изображений.

static HRESULT GetExporterFilterString(
    CSimpleString& strExporters,
    CSimpleArray<GUID>& aguidFileTypes,
    LPCTSTR pszAllFilesDescription = NULL,
    DWORD dwExclude = excludeDefaultSave,
    TCHAR chSeparator = _T('|'));

Параметры

strExporters
Ссылка на объект CSimpleString. Дополнительные сведения см. в примечаниях.

aguidFileTypes
Массив идентификаторов GUID с каждым элементом, соответствующим одному из типов файлов в строке. В приведенном ниже примере pszAllFilesDescription используется GUID_NULL и остальные значения массива — форматы файлов изображений, aguidFileTypes[0] поддерживаемые текущей операционной системой.

Примечание.

Полный список констант см. в разделе "Константы формата образа" в пакете SDK для Windows.

pszAllFilesDescription
Если этот параметр не NULLзадан, строка фильтра будет иметь один дополнительный фильтр в начале списка. Этот фильтр будет иметь текущее значение pszAllFilesDescription описания и принимает файлы любого расширения, поддерживаемого любым другим экспортером в списке.

Например:

//First filter in the list will be titled "All Image Files", and
//will accept files with any extension supported by any exporter.
CImage::GetExporterFilterString(
    strExporters, aguidFileTypes,
_T("All Image Files"));

dwExclude
Набор битовых флагов, указывающих, какие типы файлов следует исключить из списка. Допустимые флаги:

  • excludeGIF = 0x01 исключает GIF-файлы.

  • excludeBMP = 0x02 исключает файлы BMP (Растровая карта Windows).

  • excludeEMF = 0x04 исключает файлы EMF (расширенный метафайл).

  • excludeWMF = 0x08 исключает файлы WMF (Метафайл Windows).

  • excludeJPEG = 0x10 исключает JPEG-файлы.

  • excludePNG = 0x20 исключает PNG-файлы.

  • excludeTIFF = 0x40 исключает TIFF-файлы.

  • excludeIcon = 0x80 исключает файлы ICO (значок Windows).

  • excludeOther = 0x80000000 исключает любой другой тип файла, не указанный выше.

  • excludeDefaultLoad = 0 для загрузки все типы файлов включены по умолчанию

  • excludeDefaultSave = excludeIcon | excludeEMF | excludeWMF Для сохранения эти файлы исключаются по умолчанию, так как они обычно имеют особые требования.

chSeparator
Разделитель, используемый между форматами изображений. Дополнительные сведения см. в примечаниях.

Возвращаемое значение

Стандартный HRESULT.

Замечания

В объект MFC CFileDialog можно передать полученную строку форматирования, чтобы предоставить расширения файлов доступных форматов изображений в диалоговом окне "Сохранить как файл".

strExporter Параметр имеет формат:

file description 0|*.ext0|file description 1|*.ext1|...file description N|*.extN||

где | является символ разделителя, заданный .chSeparator Например:

"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"

Используйте разделитель | по умолчанию, если передать эту строку объекту MFC CFileDialog . Используйте разделитель '\0' NULL, если передать эту строку в обычное диалоговое окно "Сохранить файл".

CImage::GetHeight

Извлекает высоту изображения в пикселях.

int GetHeight() const throw();

Возвращаемое значение

Высота изображения в пикселях.

CImage::GetImporterFilterString

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

static HRESULT GetImporterFilterString(
    CSimpleString& strImporters,
    CSimpleArray<GUID>& aguidFileTypes,
    LPCTSTR pszAllFilesDescription = NULL,
    DWORD dwExclude = excludeDefaultLoad,
    TCHAR chSeparator = _T('|'));

Параметры

strImporters
Ссылка на объект CSimpleString. Дополнительные сведения см. в примечаниях.

aguidFileTypes
Массив идентификаторов GUID с каждым элементом, соответствующим одному из типов файлов в строке. В приведенном ниже примере pszAllFilesDescription *aguidFileTypes[0]* со GUID_NULL значениями остальных массивов являются форматы файлов изображений, поддерживаемые текущей операционной системой.

Примечание.

Полный список констант см. в разделе "Константы формата образа" в пакете SDK для Windows.

pszAllFilesDescription
Если этот параметр не NULLзадан, строка фильтра будет иметь один дополнительный фильтр в начале списка. Этот фильтр будет иметь текущее значение pszAllFilesDescription описания и принимает файлы любого расширения, поддерживаемого любым другим экспортером в списке.

Например:

//First filter in the list will be titled "All Image Files", and
//will accept files with any extension supported by any importer.
CImage::GetImporterFilterString(
    strImporters, aguidFileTypes,
_T("All Image Files"));

dwExclude
Набор битовых флагов, указывающих, какие типы файлов следует исключить из списка. Допустимые флаги:

  • excludeGIF = 0x01 исключает GIF-файлы.

  • excludeBMP = 0x02 исключает файлы BMP (Растровая карта Windows).

  • excludeEMF = 0x04 исключает файлы EMF (расширенный метафайл).

  • excludeWMF = 0x08 исключает файлы WMF (Метафайл Windows).

  • excludeJPEG = 0x10 исключает JPEG-файлы.

  • excludePNG = 0x20 исключает PNG-файлы.

  • excludeTIFF = 0x40 исключает TIFF-файлы.

  • excludeIcon = 0x80 исключает файлы ICO (значок Windows).

  • excludeOther = 0x80000000 исключает любой другой тип файла, не указанный выше.

  • excludeDefaultLoad = 0 для загрузки все типы файлов включены по умолчанию

  • excludeDefaultSave = excludeIcon | excludeEMF | excludeWMF Для сохранения эти файлы исключаются по умолчанию, так как они обычно имеют особые требования.

chSeparator
Разделитель, используемый между форматами изображений. Дополнительные сведения см. в примечаниях.

Замечания

В объект MFC CFileDialog можно передать полученную строку формата, чтобы предоставить расширения файлов доступных форматов изображений в диалоговом окне "Открыть файл".

strImporter Параметр имеет формат:

"Описание файла 0|. описание файла ext0|1|. ext1|... описание файла N|*.extN||

где | является символ разделителя, заданный .chSeparator Например:

"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"

Используйте разделитель | по умолчанию, если передать эту строку объекту MFC CFileDialog . Используйте разделитель '\0' NULL, если передать эту строку в общее диалоговое окно "Открыть файл".

CImage::GetMaxColorTableEntries

Извлекает максимальное количество записей в таблице цветов.

int GetMaxColorTableEntries() const throw();

Возвращаемое значение

Количество записей в таблице цветов.

Замечания

Этот метод поддерживает только растровые изображения раздела DIB.

CImage::GetPitch

Извлекает поле изображения.

int GetPitch() const throw();

Возвращаемое значение

Шаг изображения. Если возвращаемое значение отрицательное, то растровое изображение — это нижний путь DIB, а его источник — левый нижний угол. Если возвращаемое значение является положительным, то растровое изображение — это верхний вниз DIB, а его источник — верхний левый угол.

Замечания

Поле — это расстояние в байтах между двумя адресами памяти, представляющими начало одной растровой линии и началом следующей строки растрового изображения. Так как шаг измеряется в байтах, шаг изображения помогает определить формат пикселей. Поле также может включать дополнительную память, зарезервированную для растрового изображения.

Используйте GetPitch для GetBits поиска отдельных пикселей изображения.

Примечание.

Этот метод поддерживает только растровые изображения раздела DIB.

CImage::GetPixel

Извлекает цвет пикселя в расположении, указанном x и y.

COLORREF GetPixel(int x, int y) const throw();

Параметры

x
Координата x пикселя.

y
Координата y пикселя.

Возвращаемое значение

Красное, зеленое, синее (RGB) значение пикселя. Если пиксель находится за пределами текущей области вырезки, возвращается CLR_INVALIDвозвращаемое значение.

CImage::GetPixelAddress

Извлекает точный адрес пикселя.

void* GetPixelAddress(int x, int y) throw();

Параметры

x
Координата x пикселя.

y
Координата y пикселя.

Замечания

Адрес определяется по координатам пикселя, шагу растрового изображения и битам на пиксель.

Для форматов, которые имеют менее 8 бит на пиксель, этот метод возвращает адрес байта, содержащего пиксель. Например, если формат изображения имеет 4 бита на пиксель, GetPixelAddress возвращает адрес первого пикселя в байте, и необходимо вычислить 2 пикселя в байтах.

Примечание.

Этот метод поддерживает только растровые изображения раздела DIB.

CImage::GetTransparentColor

Извлекает индексированное расположение прозрачного цвета в цветовой палитре.

LONG GetTransparentColor() const throw();

Возвращаемое значение

Индекс прозрачного цвета.

CImage::GetWidth

Извлекает ширину изображения в пикселях.

int GetWidth() const throw();

Возвращаемое значение

Ширина растрового изображения в пикселях.

CImage::IsDIBSection

Определяет, является ли присоединенная растровая карта разделом DIB.

bool IsDIBSection() const throw();

Возвращаемое значение

TRUE Значение DIB, если подключенное растровое изображение является разделом DIB. В противном случае — значение FALSE.

Замечания

Если растровое изображение не является разделом DIB, нельзя использовать следующие CImage методы, которые поддерживают только растровые изображения раздела DIB:

CImage::IsIndexed

Определяет, сопоставляются ли пиксели растрового изображения с цветовой палитрой.

bool IsIndexed() const throw();

Возвращаемое значение

TRUE Значение ,если индексировано; в противном случае FALSE.

Замечания

Этот метод возвращается TRUE только в том случае, если растровое изображение равно 8-разрядному (256 цветам) или меньше.

Примечание.

Этот метод поддерживает только растровые изображения раздела DIB.

CImage::IsNull

Определяет, загружается ли растровое изображение.

bool IsNull() const throw();

Замечания

Этот метод возвращает, TRUE если растровое изображение в данный момент не загружено; в противном случае FALSE.

CImage::IsTransparencySupported

Указывает, поддерживает ли приложение прозрачные растровые изображения.

static BOOL IsTransparencySupported() throw();

Возвращаемое значение

Ненулевое значение, если текущая платформа поддерживает прозрачность. В противном случае 0.

Замечания

Если возвращаемое значение ненулевое, а прозрачность поддерживается, вызов AlphaBlendили TransparentBltDraw будет обрабатывать прозрачные цвета.

CImage::Load

Загружает изображение.

HRESULT Load(LPCTSTR pszFileName) throw();
HRESULT Load(IStream* pStream) throw();

Параметры

pszFileName
Указатель на строку, содержащую имя файла изображения для загрузки.

pStream
Указатель на поток, содержащий имя загружаемого файла изображения.

Возвращаемое значение

Стандартный HRESULT.

Замечания

Загружает изображение, указанное pszFileName или pStream.

Допустимые типы изображений: BMP, GIF, JPEG, PNG и TIFF.

CImage::LoadFromResource

Загружает образ из BITMAP ресурса.

void LoadFromResource(
    HINSTANCE hInstance,
    LPCTSTR pszResourceName) throw();

void LoadFromResource(
    HINSTANCE hInstance,
    UINT nIDResource) throw();

Параметры

hInstance
Обработайте экземпляр модуля, содержащего образ, который нужно загрузить.

pszResourceName
Указатель на строку, содержащую имя ресурса, содержащего изображение для загрузки.

nIDResource
Идентификатор загружаемого ресурса.

Замечания

Ресурс должен быть типом BITMAP.

CImage::MaskBlt

Объединяет данные цвета для исходных и целевых растровых изображений с помощью указанной операции маски и растра.

BOOL MaskBlt(
    HDC hDestDC,
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    int xSrc,
    int ySrc,
    HBITMAP hbmMask,
    int xMask,
    int yMask,
    DWORD dwROP = SRCCOPY) const throw();

BOOL MaskBlt(
    HDC hDestDC,
    const RECT& rectDest,
    const POINT& pointSrc,
    HBITMAP hbmMask,
    const POINT& pointMask,
    DWORD dwROP = SRCCOPY) const throw();

BOOL MaskBlt(
    HDC hDestDC,
    int xDest,
    int yDest,
    HBITMAP hbmMask,
    DWORD dwROP = SRCCOPY) const throw();

BOOL MaskBlt(
    HDC hDestDC,
    const POINT& pointDest,
    HBITMAP hbmMask,
    DWORD dwROP = SRCCOPY) const throw();

Параметры

hDestDC
Дескриптор модуля, исполняемый файл которого содержит ресурс.

xDest
Координата x в логических единицах левого верхнего угла прямоугольника назначения.

yDest
Координата y в логических единицах верхнего левого угла прямоугольника назначения.

nDestWidth
Ширина в логических единицах целевого прямоугольника и исходного растрового изображения.

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

xSrc
Логическая координата x левого верхнего угла исходного растрового изображения.

ySrc
Логическая координата y левого верхнего угла исходного растрового изображения.

hbmMask
Обработка растрового изображения монохромной маски в сочетании с цветным растровым изображением в контексте исходного устройства.

xMask
Горизонтальное смещение пикселя для растрового изображения маски, указанного параметром hbmMask .

yMask
Смещение вертикального пикселя для растрового изображения маски, указанного параметром hbmMask .

dwROP
Указывает коды операций переднего плана и фонового растра, которые метод использует для управления сочетанием исходных и целевых данных. Код операции фонового растра хранится в байтах высокого порядка слова этого значения; Код операции растра переднего плана хранится в байтах низкого порядка слова этого значения; Слово с низким порядком этого значения игнорируется и должно быть равно нулю. Обсуждение переднего плана и фона в контексте этого метода см MaskBlt . в пакете SDK для Windows. Список распространенных кодов операций растровых операций см BitBlt . в пакете SDK для Windows.

rectDest
Ссылка на RECT структуру, определяющая назначение.

pointSrc
Структура POINT , указывающая левый верхний угол исходного прямоугольника.

pointMask
Структура POINT , указывающая левый верхний угол растрового изображения маски.

pointDest
Ссылка на POINT структуру, которая определяет левый верхний угол прямоугольника назначения в логических единицах.

Возвращаемое значение

Ненулевое значение, если выполнено успешно, в противном случае — значение 0.

Замечания

Этот метод применяется только к Windows NT, версиям 4.0 и более поздним версиям.

CImage::operator HBITMAP

Используйте этот оператор для получения присоединенного дескриптора CImage GDI Windows объекта. Этот оператор является оператором приведения, который поддерживает прямое использование HBITMAP объекта.

CImage::PlgBlt

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

BOOL PlgBlt(
    HDC hDestDC,
    const POINT* pPoints,
    HBITMAP hbmMask = NULL) const throw();

BOOL PlgBlt(
    HDC hDestDC,
    const POINT* pPoints,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    HBITMAP hbmMask = NULL,
    int xMask = 0,
    int yMask = 0) const throw();

BOOL PlgBlt(
    HDC hDestDC,
    const POINT* pPoints,
    const RECT& rectSrc,
    HBITMAP hbmMask = NULL,
    const POINT& pointMask = CPoint(0, 0)) const throw();

Параметры

hDestDC
Дескриптор контекста конечного устройства.

pPoints
Указатель на массив из трех точек в логическом пространстве, который определяет три угла целевой параллелограммы. Верхний левый угол исходного прямоугольника сопоставляется с первой точкой в этом массиве, правым верхним углом второй точки в этом массиве, а левый нижний угол — третьей точкой. Правый нижний угол исходного прямоугольника сопоставляется с неявной четвертой точкой параллелограммы.

hbmMask
Дескриптор необязательного однохромного растрового изображения, который используется для маскирования цветов исходного прямоугольника.

xSrc
Координата x в логических единицах левого верхнего угла исходного прямоугольника.

ySrc
Координата y в логических единицах верхнего левого угла исходного прямоугольника.

nSrcWidth
Ширина в логических единицах исходного прямоугольника.

nSrcHeight
Высота в логических единицах исходного прямоугольника.

xMask
Координата x левого верхнего угла растрового изображения монохромного.

yMask
Координата y верхнего левого угла растрового изображения монохромного.

rectSrc
Ссылка на RECT структуру, указывающую координаты исходного прямоугольника.

pointMask
Структура POINT , указывающая левый верхний угол растрового изображения маски.

Возвращаемое значение

Ненулевое значение, если выполнено успешно, в противном случае — значение 0.

Замечания

Если hbmMask идентифицирует допустимое монохромное растровое изображение, PlgBit используется для маскирования битов цветовых данных из исходного прямоугольника.

Этот метод применяется только к Windows NT, версиям 4.0 и более поздним версиям. Дополнительные сведения см PlgBlt . в пакете SDK для Windows.

CImage::ReleaseDC

Освобождает контекст устройства.

void ReleaseDC() const throw();

Замечания

Так как только одна растровая карта может быть выбрана в контексте устройства за раз, необходимо вызвать каждый вызов ReleaseDCGetDC.

CImage::ReleaseGDIPlus

Освобождает ресурсы, используемые GDI+.

void ReleaseGDIPlus() throw();

Замечания

Этот метод должен вызываться для свободных ресурсов, выделенных глобальным CImage объектом. См. раздел CImage::CImage.

CImage::Save

Сохраняет образ в указанном потоке или файле на диске.

HRESULT Save(
    IStream* pStream,
    REFGUID guidFileType) const throw();

HRESULT Save(
    LPCTSTR pszFileName,
    REFGUID guidFileType = GUID_NULL) const throw();

Параметры

pStream
Указатель на объект COM IStream, содержащий данные образа файла.

pszFileName
Указатель на имя файла для изображения.

guidFileType
Тип файла для сохранения изображения как. Может применяться один из перечисленных ниже типов.

  • ImageFormatBMP Несжатое растровое изображение.

  • ImageFormatPNG Сжатое изображение переносимого сетевого рисунка (PNG).

  • ImageFormatJPEG Сжатое изображение JPEG.

  • ImageFormatGIF Сжатое изображение GIF.

Примечание.

Полный список констант см. в разделе "Константы формата образа" в пакете SDK для Windows.

Возвращаемое значение

Стандартный HRESULT.

Замечания

Вызовите эту функцию, чтобы сохранить изображение с помощью указанного имени и типа. guidFileType Если параметр не включен, расширение файла имени файла будет использоваться для определения формата изображения. Если расширение не указано, изображение будет сохранено в формате BMP.

CImage::SetColorTable

Задает значения цвета красного, зеленого, синего цвета (RGB) для диапазона записей в палитре раздела DIB.

void SetColorTable(
    UINT iFirstColor,
    UINT nColors,
    const RGBQUAD* prgbColors) throw();

Параметры

iFirstColor
Индекс таблицы цветов первой записи, заданной.

nColors
Количество записей таблицы цветов, которые нужно задать.

prgbColors
Указатель на массив RGBQUAD структур для задания записей таблицы цветов.

Замечания

Этот метод поддерживает только растровые изображения раздела DIB.

CImage::SetPixel

Задает цвет пикселя в заданном расположении в растровом рисунке.

void SetPixel(int x, int y, COLORREF color) throw();

Параметры

x
Горизонтальное расположение заданного пикселя.

y
Вертикальное расположение заданного пикселя.

color
Цвет, для которого задается пиксель.

Замечания

Этот метод завершается ошибкой, если координаты пикселей лежат за пределами выбранной области вырезки.

CImage::SetPixelIndexed

Задает цвет пикселей, расположенный iIndex в цветовой палитре.

void SetPixelIndexed(int x, int y, int iIndex) throw();

Параметры

x
Горизонтальное расположение заданного пикселя.

y
Вертикальное расположение заданного пикселя.

iIndex
Индекс цвета в цветовой палитре.

CImage::SetPixelRGB

Задает пиксель в расположениях, указанных в цветах, gуказанных rx в виде , и bв красном, зеленом, синем (RGB) изображении.y

void SetPixelRGB(
    int x,
    int y,
    BYTE r,
    BYTE g,
    BYTE b) throw();

Параметры

x
Горизонтальное расположение заданного пикселя.

y
Вертикальное расположение заданного пикселя.

r
Интенсивность красного цвета.

g
Интенсивность зеленого цвета.

b
Интенсивность синего цвета.

Замечания

Красные, зеленые и синие параметры представлены числом от 0 до 255. Если задать для всех трех параметров нулевое значение, объединенный результирующий цвет является черным. Если задать для всех трех параметров значение 255, объединенный результирующий цвет будет белым.

CImage::SetTransparentColor

Задает цвет в заданном индексованном расположении как прозрачный.

LONG SetTransparentColor(LONG iTransparentColor) throw();

Параметры

iTransparentColor
Индекс в цветовой палитре цвета, который необходимо задать для прозрачного. Если значение -1, цвет не задан прозрачным.

Возвращаемое значение

Индекс цвета, заданного ранее как прозрачный.

CImage::StretchBlt

Копирует растровое изображение из исходного контекста устройства в текущий контекст устройства.

BOOL StretchBlt(
    HDC hDestDC,
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    DWORD dwROP = SRCCOPY) const throw();

BOOL StretchBlt(
    HDC hDestDC,
    const RECT& rectDest,
    DWORD dwROP = SRCCOPY) const throw();

BOOL StretchBlt(
    HDC hDestDC,
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    DWORD dwROP = SRCCOPY) const throw();

BOOL StretchBlt(
    HDC hDestDC,
    const RECT& rectDest,
    const RECT& rectSrc,
    DWORD dwROP = SRCCOPY) const throw();

Параметры

hDestDC
Дескриптор контекста конечного устройства.

xDest
Координата x в логических единицах левого верхнего угла прямоугольника назначения.

yDest
Координата y в логических единицах верхнего левого угла прямоугольника назначения.

nDestWidth
Ширина в логических единицах прямоугольника назначения.

nDestHeight
Высота в логических единицах прямоугольника назначения.

dwROP
Операция растра, выполняемая. Коды операций растра определяют точно, как объединить биты источника, назначения и шаблона (как определено выбранной в данный момент кистью) для формирования назначения. Ознакомьтесь BitBlt со списком других кодов операций с растрами и их описаниями в windows SDK.

rectDest
Ссылка на RECT структуру, определяющая назначение.

xSrc
Координата x в логических единицах левого верхнего угла исходного прямоугольника.

ySrc
Координата y в логических единицах верхнего левого угла исходного прямоугольника.

nSrcWidth
Ширина в логических единицах исходного прямоугольника.

nSrcHeight
Высота в логических единицах исходного прямоугольника.

rectSrc
Ссылка на RECT структуру, определяющая источник.

Возвращаемое значение

Ненулевое значение, если выполнено успешно, в противном случае — значение 0.

Замечания

Дополнительные сведения см StretchBlt . в пакете SDK для Windows.

CImage::TransparentBlt

Копирует растровое изображение из исходного контекста устройства в текущий контекст устройства.

BOOL TransparentBlt(
    HDC hDestDC,
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    UINT crTransparent = CLR_INVALID) const throw();

BOOL TransparentBlt(
    HDC hDestDC,
    const RECT& rectDest,
    UINT crTransparent = CLR_INVALID) const throw();

BOOL TransparentBlt(
    HDC hDestDC,
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    UINT crTransparent = CLR_INVALID) const throw();

BOOL TransparentBlt(
    HDC hDestDC,
    const RECT& rectDest,
    const RECT& rectSrc,
    UINT crTransparent = CLR_INVALID) const throw();

Параметры

hDestDC
Дескриптор контекста конечного устройства.

xDest
Координата x в логических единицах левого верхнего угла прямоугольника назначения.

yDest
Координата y в логических единицах верхнего левого угла прямоугольника назначения.

nDestWidth
Ширина в логических единицах прямоугольника назначения.

nDestHeight
Высота в логических единицах прямоугольника назначения.

crTransparent
Цвет в исходном растровом рисунке, который будет рассматриваться как прозрачный. По умолчанию, указывая, что цвет, заданный в настоящее время как прозрачный цвет изображения, CLR_INVALIDдолжен использоваться.

rectDest
Ссылка на RECT структуру, определяющая назначение.

xSrc
Координата x в логических единицах левого верхнего угла исходного прямоугольника.

ySrc
Координата y в логических единицах верхнего левого угла исходного прямоугольника.

nSrcWidth
Ширина в логических единицах исходного прямоугольника.

nSrcHeight
Высота в логических единицах исходного прямоугольника.

rectSrc
Ссылка на RECT структуру, определяющая источник.

Возвращаемое значение

TRUE Значение , если успешно выполнено, в противном случае FALSE.

Замечания

TransparentBlt поддерживается для исходных растровых изображений 4 бита на пиксель и 8 бит на пиксель. Используется CImage::AlphaBlend для указания 32-разрядных растровых изображений на пиксель с прозрачностью.

Пример

// Performs a transparent blit from the source image to the destination
// image using the images' current transparency settings
BOOL TransparentBlt(CImage* pSrcImage, CImage* pDstImage,
       int xDest, int yDest, int nDestWidth, int nDestHeight)
{
    HDC hDstDC = NULL;
    BOOL bResult;

    if(pSrcImage == NULL || pDstImage == NULL)
    {
        // Invalid parameter
        return FALSE;
    }

    // Obtain a DC to the destination image
    hDstDC = pDstImage->GetDC();
    // Perform the blit
    bResult = pSrcImage->TransparentBlt(hDstDC, xDest, yDest, nDestWidth, nDestHeight);

    // Release the destination DC
    pDstImage->ReleaseDC();

    return bResult;
}

См. также

MMXSwarm Образец
SimpleImage Образец
Независимые от устройства растровые карты
CreateDIBSection
Компоненты ATL COM Desktop
Независимые от устройства растровые карты