Поделиться через


Класс CImage

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

Важное примечаниеВажно

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

class CImage

Члены

bwea7by5.collapse_all(ru-ru,VS.110).gifОткрытые конструкторы

Имя

Описание

CImage::CImage

Конструктор.

bwea7by5.collapse_all(ru-ru,VS.110).gifОткрытые методы

Имя

Описание

CImage::AlphaBlend

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

CImage::Attach

Вложение HBITMAP к объекту CImage.Может использоваться с растровыми изображениями растровых изображений раздела non-DIB или раздела DIB.

CImage::BitBlt

Копирует растровое изображение из контекста устройства источника к этому текущий контекст устройства.

CImage::Create

Создает растровое изображение раздела DIB и вложение его на ранее созданный объект CImage.

CImage::CreateEx

Создает растровое изображение раздела DIB (с дополнительными параметрами) и привязывает его на ранее созданный объект CImage.

CImage::Destroy

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

CImage::Detach

Наконец удаляет растровое изображение из объекта CImage.

CImage::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

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

CImage::Load

Загружает образ из указанного файла.

CImage::LoadFromResource

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

CImage::MaskBlt

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

CImage::PlgBlt

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

CImage::ReleaseDC

Освобождает контекст устройства, который был получить с CImage::GetDC.

CImage::ReleaseGDIPlus

Освобождает ресурсы, используемые GDI+.Быть вызываются для освобождения ресурсов, созданные глобальным объектом CImage.

CImage::Save

Сохраняет изображение как значение указанного типа.Сохранить не может определить параметры образа.

CImage::SetColorTable

Устанавливает красного, зеленого и синего цвета RGB) в диапазоне записей в таблице цветов раздела DIB.

CImage::SetPixel

Устанавливает точку на указанные координаты в указанный цвет.

CImage::SetPixelIndexed

Устанавливает точку на указанные координаты к цвету палитры по указанному индексу.

CImage::SetPixelRGB

Устанавливает точку на указанные координаты к определенному красный, зеленого, голубому значение (RGB).

CImage::SetTransparentColor

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

CImage::StretchBlt

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

CImage::TransparentBlt

Копирует растровое изображение с прозрачный цвет из контекста устройства источника к этому текущий контекст устройства.

bwea7by5.collapse_all(ru-ru,VS.110).gifОткрытые операторы

Имя

Описание

CImage::operator HBITMAP

Возвращает вложенный маркер Windows на объект CImage.

Заметки

CImage принимает растровые изображения или разделы файла DIB (DIB) или нет. однако можно использовать Создание или CImage::Load только с разделами DIB.Можно вложить растровое изображение раздела non-DIB к объекту CImage с помощью Вложение, но с другой стороны, нельзя использовать следующие методы 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 можно выбрать только один раз в HDCHBITMAP, связанное с 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 имеют ограничения на их использование.

Метод

Ограничение

PlgBlt

Рабочие только с Windows NT 4.0 или более поздней версии.В приложениях не работать под управлением Windows 95, /98 или более поздней версии.

MaskBlt

Рабочие только с Windows NT 4.0 или более поздней версии.В приложениях не работать под управлением Windows 95, /98 или более поздней версии.

AlphaBlend

Рабочие только с Windows 2000, Windows 98 и более последним системами.

TransparentBlt

Рабочие только с Windows 2000, Windows 98 и более последним системами.

Рисование

Поддерживает прозрачность только с Windows 2000, Windows 98 и более последним системами.

См. раздел Ограничения CImage с более ранними операционными системами дополнительные сведения об ограничениях на этих методах.

Можно использовать 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 в stdafx.h.

Требования

Header: atlimage.h

См. также

Ссылки

Device-Independent Bitmaps

CreateDIBSection

Основные понятия

Образец MMXSwarm

Образец SimpleImage

Другие ресурсы

Компоненты рабочего стола модели COM библиотеки ATL