Класс 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
, передайте ее CImage
HBITMAP
и используйте возвращенную 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.h
atlimpl.cpp
. Для этого легко включите atlimage.h
(pch.h
stdafx.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();
Замечания
После создания объекта, вызова Create
Load
или LoadFromResource
Attach
подключения растрового изображения к объекту.
Примечание . В 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
или TransparentBlt
Draw
будет обрабатывать прозрачные цвета.
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();
Замечания
Так как только одна растровая карта может быть выбрана в контексте устройства за раз, необходимо вызвать каждый вызов ReleaseDC
GetDC
.
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
указанных r
x
в виде , и 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
Независимые от устройства растровые карты