Функция _GDIPlus_CachedBitmapCreate

         Описание функции


_GDIPlus_CachedBitmapCreate

Создаёт объект CachedBitmap на основе Bitmap и Graphics объектов

#Include <GDIP.au3>
_GDIPlus_CachedBitmapCreate($hBitmap, $hGraphics)

Параметры

$hBitmap Указатель на объект Bitmap, содержащий данные пикселов для оптимизации
$hGraphics Указатель на объект Graphics, связанный с устройством отображения, изображение которого будет оптимизировано

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

Успех:Возвращает дескриптор нового объекта CachedBitmap
Ошибка:Возвращает 0, либо:
Если ошибка DllCall(), устанавливает @error и @extended возвращённые вызовом DllCall()
$GDIP_STATUS содержит не нулевое значение кода ошибки

Примечания

После завершения использования объекта вызовите _GDIPlus_ImageDispose, чтобы освободить ресурсы объекта.

Кэшированный bitmap, берёт данные пикселя из объекта Bitmap и сохраняет его в формате, который оптимизирован для устройства отображения связанного с объектом Graphics

См. также

_GDIPlus_CachedBitmapDispose, _GDIPlus_GraphicsDrawCachedBitmap

Пример

; Authenticity
; http://www.autoitscript.com/forum/index.php?showtopic=106021
#include <GDIP.au3>
#include <GUIConstantsEx.au3>
#include <ScreenCapture.au3>

_Example()

Func _Example()
    Local $hGUI, $hGraphics, $hBmp, $hBitmap, $hCachedBitmap

    ; Инициализирует библиотеку GDI+
    _GDIPlus_Startup()

    ; Создаёт GUI (нажмите ESC для выхода)
    $hGUI = GUICreate("Создаёт кэшированный bitmap", @DesktopWidth / 2, @DesktopHeight / 2)

    ; Создаёт графический объект из дескриптора окна
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)

    ; Делает снимок левой верхней части экрана
    $hBmp = _ScreenCapture_Capture("", 0, 0, @DesktopWidth / 2, @DesktopHeight / 2, False)

    ; Создаёт объект GDI+ Bitmap из объекта GDI Bitmap
    $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hBmp)

    ; Создаёт кэшированный bitmap из существующего bitmap и graphics объектов
    $hCachedBitmap = _GDIPlus_CachedBitmapCreate($hBitmap, $hGraphics)

    GUISetState()
    ; Теперь рисует кэшированный bitmap
    _GDIPlus_GraphicsDrawCachedBitmap($hGraphics, $hCachedBitmap, 0, 0)

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Освобождает ресурсы
    _GDIPlus_CachedBitmapDispose($hCachedBitmap)
    _GDIPlus_ImageDispose($hBitmap)
    _WinAPI_DeleteObject($hBmp)
    _GDIPlus_GraphicsDispose($hGraphics)

    ; Закрывает библиотеку GDI+
    _GDIPlus_Shutdown()
EndFunc   ;==>_Example