函数参考


_GDIPlus_BitmapCloneArea

创建指定坐标和格式的位图对象克隆

#Include <GDIPlus.au3>
_GDIPlus_BitmapCloneArea($hBmp, $iLeft, $iTop, $iWidth, $iHeight [, $iFormat = 0x00021808])

参数

$hBmp 位图对象句柄
$iLeft 被克隆的矩形左上角 X 坐标
$iTop 被克隆的矩形左上角 Y 坐标
$iWidth 位图副本矩形宽度
$iHeight 位图副本矩形高度
$iFormat [可选参数] 新位图像素格式:
$GDIP_PXF01INDEXED = 1 位象素,索引
$GDIP_PXF04INDEXED = 4 位象素,索引
$GDIP_PXF08INDEXED = 8 位象素,索引
$GDIP_PXF16GRAYSCALE = 16 位象素,灰度级
$GDIP_PXF16RGB555 = 16 位象素; 每个 RGB 分量 5 位
$GDIP_PXF16RGB565 = 16 位象素; 红色 5 位 , 绿色 6 位, 蓝色 5 位
$GDIP_PXF16ARGB1555 = 16 位象素; 1 bit alpha 每个 RGB 分量 5 位
$GDIP_PXF24RGB = 24 位象素;每个 RGB 分量 8 位
$GDIP_PXF32RGB = 32 位象素; 每个 RGB 分量 8 位. 没有 alpha 分量.
$GDIP_PXF32ARGB = 32 位象素; 每组 RGB 分量和 alpha 8 位
$GDIP_PXF32PARGB = 32 位象素; 每组 RGB 分量和 alpha 8 位, pre-mulitiplied
$GDIP_PXF48RGB = 48 位象素; 每组 RGB 分量 16 位
$GDIP_PXF64ARGB = 64 位象素; 每组 RGB 分量和 alpha 16 位
$GDIP_PXF64PARGB = 64 位象素; 每组 RGB 分量和 alpha 16 位, pre-multiplied

返回值

成功: 返回位图对象句柄
失败: 返回 0

注意/说明

当您完成位图对象,调用 _GDIPlus_BitmapDispose 释放资源

相关

_GDIPlus_BitmapDispose, _GDIPlus_ImageGetPixelFormat

详情参考

在MSDN中搜索


示例/演示


#include <GDIPlus.au3>
#include <ScreenCapture.au3>

_Main()

Func _Main()
    Local $hBitmap, $hClone, $hImage, $iX, $iY

    ; 初始化 GDI+ 库
    _GDIPlus_Startup()

    ; 捕获到 32 位位图
    $hBitmap = _ScreenCapture_Capture("")
    $hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)

    ; 创建 24 位位图副本
    $iX = _GDIPlus_ImageGetWidth($hImage)
    $iY = _GDIPlus_ImageGetHeight($hImage)
    $hClone = _GDIPlus_BitmapCloneArea($hImage, 0, 0, $iX, $iY, $GDIP_PXF24RGB)

    ; 保存位图到文件
    _GDIPlus_ImageSaveToFile($hClone, @MyDocumentsDir & "\GDIPlus_Image.bmp")

    ; 清理资源
    _GDIPlus_ImageDispose($hClone)
    _GDIPlus_ImageDispose($hImage)
    _WinAPI_DeleteObject($hBitmap)

    ; 关闭 GDI+ 库
    _GDIPlus_Shutdown()

EndFunc   ;==>_Main