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


CImage Class

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

Важно!

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

class CImage

Члены

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

Имя

Описание

CImage::CImage

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

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

Имя

Описание

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

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

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

Имя

Описание

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

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

ATL COM Desktop Components