OLA 文档中心OLA 文档中心
OLA插件文档
OLA授权中心文档
OLA支付中心文档
OLA插件文档
OLA授权中心文档
OLA支付中心文档
  • 欧拉插件
  • 窗口

    • 绑定窗口 - BindWindow
    • 绑定窗口高级 - BindWindowEx
    • 解绑窗口 - UnBindWindow
    • 强制卸载DLL - ReleaseWindowsDll
    • 查看绑定窗口 - GetBindWindow
    • 查找窗口 - FindWindow
    • 拓展找窗口 - FindWindowEx
    • 通过进程找窗口 - FindWindowByProcess
    • 通过进程找窗口 - FindWindowByProcessId
    • 获取窗口 - GetWindow
    • 获取焦点窗口 - GetForegroundFocus
    • 获取坐标所在窗口句柄 - GetPointWindow
    • 获取顶层窗口句柄 - GetForegroundWindow
    • 获取鼠标所在窗口句柄 - GetMousePointWindow
    • 获取特殊窗口 - GetSpecialWindow
    • 枚举进程 - EnumProcess
    • 枚举窗口 - EnumWindow
    • 枚举进程窗口 - EnumWindowByProcessId
    • 枚举进程窗口 - EnumWindowByProcess
    • 枚举特殊窗口 - EnumWindowSuper
    • 查找特殊窗口 - FindWindowSuper
    • 获取线程ID - GetWindowThreadId
    • 获取进程ID - GetWindowProcessId
    • 移动窗口 - MoveWindow
    • 窗口坐标转屏幕坐标 - ClientToScreen
    • 屏幕坐标转窗口坐标 - ScreenToClient
    • 获取绑定窗口缩放比例 - GetScaleFromWindows
    • 获取窗口DPI感知比例 - GetWindowDpiAwarenessScale
    • 获取客户区大小 - GetClientSize
    • 获取窗口标题 - GetWindowTitle
    • 获取窗口类名 - GetWindowClass
    • 获取窗口区域 - GetWindowRect
    • 获取窗口所在路径 - GetWindowProcessPath
    • 获取窗口状态 - GetWindowState
    • 获取客户区域 - GetClientRect
    • 设置窗口标题 - SetWindowText
    • 设置窗口大小 - SetWindowSize
    • 设置窗口状态 - SetWindowState
    • 设置剪贴板 - SetClipboard
    • 设置客户区大小 - SetClientSize
    • 设置透明度 - SetWindowTransparent
    • 获取进程详细信息 - GetProcessInfo
    • 发送剪贴板内容 - SendPaste
    • 获取剪贴板内容 - GetClipboard
    • 发送字符串 - SendString
  • 鼠标

    • 范围鼠标移动 - MoveToEx
    • 获取鼠标特征码 - GetCursorShape
    • 获取鼠标图标 - GetCursorImage
    • 获取鼠标位置 - GetCursorPos
    • 相对移动 - MoveR
    • 移动 - MoveTo
    • 直接移动 - MoveToWithoutSimulator
    • 左键按下 - LeftDown
    • 左键弹起 - LeftUp
    • 左键点击 - LeftClick
    • 左键双击 - LeftDoubleClick
    • 右键按下 - RightDown
    • 右键弹起 - RightUp
    • 右键点击 - RightClick
    • 中键按下 - MiddleDown
    • 中键弹起 - MiddleUp
    • 中键点击 - MiddleClick
    • 中键上滚 - WheelUp
    • 中键下滚 - WheelDown
    • 生成鼠标移动轨迹 - GenerateMouseTrajectory
    • 设置系统鼠标精度 - EnableMouseAccuracy
  • 键盘

    • 按键 - KeyPress
    • 按键char - KeyPressChar
    • 按键str - KeyPressStr
    • 等待按键 - WaitKey
    • 键盘按住 - KeyDown
    • 键盘按住char - KeyDownChar
    • 键盘弹起 - KeyUp
    • 键盘弹起char - KeyUpChar
  • 图像处理

    • 截图并保存成文件 - Capture
    • 截图GIF - CaptureGif
    • 截图返回字节流 - GetScreenDataBmp
    • 截图返回字节流 - GetScreenData
    • 获取指定区域图象 - GetScreenDataPtr
    • 加载图片 - LoadImage
    • 加载图片 - LoadImageFromRGBData
    • 载入bmp图片 - LoadImageFromBmpData
    • 加载文件夹下的所有图片 - LoadImagePath(已弃用)
    • 保存图片 - SaveImageFromPtr
    • 拷贝图片 - CopyImage
    • 读取图片字节流 - GetImageData
    • 读取图片BMP字节流 - GetImageBmpData
    • 释放指定图片路径内存 - FreeImagePath
    • 释放所有内存 - FreeImageAll
    • 释放指定图片内存 - FreeImagePtr
    • 释放指定图片内存1 - FreeImageData
    • 裁剪图片 - Cropped
    • 获取图片大小 - GetImageSize
    • 调整图片大小 - ReSize
    • 调整图片大小 - ScalePixels
    • 弹窗显示图片 - ShowImage
    • 获取指定区域刷新率 - GetWindowsFps
    • 指定区域数据是否卡屏 - IsDisplayDead
    • 取色 - GetColor
    • 获取像素颜色 - GetColorPtr
    • RGB颜色转为16进制格式 - ARGB2Hex
    • RGB颜色转为16进制格式 - RGB2Hex
    • 16进制格式颜色转为ARGB - Hex2ARGB
    • 16进制格式颜色转为RGB - Hex2RGB
    • 对比颜色 - CmpColor
    • 对比颜色 - CmpColorPtr
    • 对比颜色 - CmpColorHex
    • 查找符合的颜色 - FindColor
    • 查找所有符合的颜色 - FindColorList
    • 查找指定颜色范围坐标 - FindMultiColor
    • 查找指定颜色范围坐标 - FindMultiColorFromPtr
    • 查找指定颜色范围坐标 - FindMultiColorList
    • 查找指定颜色范围坐标 - FindMultiColorListFromPtr
    • 查找指定区域内的颜色块 - FindColorBlock
    • 查找指定区域内的颜色块 - FindColorBlockPtr
    • 查找指定区域内的所有颜色块 - FindColorBlockList
    • 查找指定区域内的所有颜色块 - FindColorBlockListPtr
    • 设置指定颜色为新的颜色 - SetColorsToNewColor
    • 移除除指定颜色外的所有颜色 - RemoveOtherColors
    • 获取二值化图像 - GetThresholdImageFromMultiColorPtr
    • 获取指定区域二值化图像 -GetThresholdImageFromMultiColor
    • 获取指定颜色数量 - GetColorNum
    • 获取指定颜色数量 - GetColorNumPtr
    • 移除图片差异部分 - RemoveImageDiff
    • 生成二维码 - CreateQRCode
    • 解析二维码 - DecodeQRCode
    • 创建图片 - CreateImage
    • 设置图片指定坐标的颜色 - SetPixel
    • 设置图片指定坐标集的颜色 - SetPixelList
    • 拼接图片 - ConcatImage
    • 图片转为base64字符串 - ImageToBase64
    • base64字符串转为图片 - Base64ToImage
    • 旋转图片 - RotateImage
    • 覆盖图片 - CoverImage
    • 绘制圆形 - DrawCircle
    • 绘制矩形 - DrawRectangle
    • 绘制多边形 - DrawFillPoly
    • 坐标点排序 - SortPosDistance
    • 识别图片排除指定区域 - ExcludePos
    • 查找最近坐标点 - FindNearestPos
  • 图像识别

    • 匹配绑定窗口图片 - MatchWindowsFromPathAll
    • 匹配绑定窗口图片1 - MatchWindowsFromPtr
    • 匹配绑定窗口图片2 - MatchWindowsFromPtrAll
    • 匹配绑定窗口图片3 - MatchWindowsFromPath
    • 匹配绑定窗口图片4 - MatchWindowsThresholdFromPtr
    • 匹配绑定窗口图片5 - MatchWindowsThresholdFromPtrAll
    • 匹配绑定窗口图片6 - MatchWindowsThresholdFromPath
    • 匹配绑定窗口图片7 - MatchWindowsThresholdFromPathAll
    • 匹配图片 - MatchImageFromPathAll
    • 匹配图片1 - MatchImageFromPath
    • 匹配图片2 - MatchImageFromPtrAll
    • 匹配图片3 - MatchImageFromPtr
    • 匹配图片4 - MatchImagePtrFromPath
    • 匹配图片5 - MatchImagePtrFromPathAll
    • 匹配动画窗口 - MatchAnimationFromPath
    • 匹配动画窗口1 - MatchAnimationFromPtr
    • 图片比较-结构相似性指数 - CalculateSSIM
    • 图片比较-完整比较 - IsSameImage
    • 图片比较-直方图比较 - CalculateHistograms
    • 图片比较-均方误差 - CalculateMSE
    • 是否显示匹配结果弹窗 - ShowMatchWindow
  • 文字识别

    • 指定区域识字 - Ocr
    • 指定bmp图片识字 - OcrFromBmpData
    • 指定区域详细信息- OcrDetails
    • 指定图片识字 - OcrFromPtr
    • 指定bmp图片详细信息 - OcrFromBmpDataDetails
    • 指定图片详细信息 - OcrFromPtrDetails
  • 数据库

    • 打开数据库 - OpenDatabase
    • 读取错误信息 - GetDatabaseError
    • 关闭数据库 - CloseDatabase
    • 读取所有表名 - GetAllTableNames
    • 读取表结构信息 - GetTableInfo
    • 读取表结构详细信息 - GetTableInfoDetail
    • 执行SQL - ExecuteSql
    • 执行快速查询 - ExecuteScalar
    • 执行查询 - ExecuteReader
    • 读取游标 - Read
    • 读取查询结果的数量 - GetDataCount
    • 读取列数量 - GetColumnCount
    • 读取列名称 - GetColumnName
    • 读取列索引 - GetColumnIndex
    • 读取列类型 - GetColumnType
    • 销毁STMT对象 - Finalize
    • 读取double数据 - GetDouble
    • 读取int32数据 - GetInt32
    • 读取int64数据 - GetInt64
    • 读取string数据 - GetString
    • 读取double数据 - GetDoubleByColumnName
    • 读取int数据 - GetInt32ByColumnName
    • 读取long数据 - GetInt64ByColumnName
    • 读取string数据 - GetStringByColumnName
  • 图像数据库

    • 加载字库图片 - InitDictFromDir
    • 添加字库数据 - ImportDictWord
    • 导出字库数据 - ExportDict
    • 移除字库 - RemoveDict
    • 移除词典词条 - RemoveDictWord
    • 读取字库图片 - GetDictImage
    • 查找文字 - FindStr
    • 初始化OLA数据库 - InitOlaDatabase
    • 从目录初始化OLA图像 - InitOlaImageFromDir
    • 从目录移除OLA图像 - RemoveOlaImageFromDir
    • 导出OLA图像到目录 - ExportOlaImageDir
    • 导入OLA图像 - ImportOlaImage
    • 获取OLA图像 - GetOlaImage
    • 移除OLA图像 - RemoveOlaImage
  • Config相关

    • 读取数据库配置项 - GetDbConfig
    • 设置数据库配置 - SetDbConfig
    • 移除数据库配置项 - RemoveDbConfig
    • 读取数据库配置项 - GetDbConfigEx
    • 设置数据库配置 - SetDbConfigEx
    • 移除数据库配置项 - RemoveDbConfigEx
  • 高级版功能

    • AI

      • YOLO
    • 防护盾

  • 快捷键

    • 启动快捷键监听 - StartHotkeyHook
    • 停止快捷键监听 - StopHotkeyHook
    • 注册键盘快捷键 - RegisterHotkey
    • 卸载键盘快捷键 - UnregisterHotkey
    • 注册鼠标点击快捷键 - RegisterMouseButton
    • 卸载鼠标点击快捷键 - UnregisterMouseButton
    • 注册鼠标滚轮快捷键 - RegisterMouseWheel
    • 卸载鼠标滚轮快捷键 - UnregisterMouseWheel
    • 注册鼠标移动快捷键 - RegisterMouseMove
    • 卸载鼠标移动快捷键 - UnregisterMouseMove
    • 注册鼠标拖动快捷键 - RegisterMouseDrag
    • 卸载鼠标拖动快捷键 - UnregisterMouseDrag
  • 设置

    • 版本 - Ver
    • 获取插件路径 - GetBasePath
    • 获取机器码 - GetMachineCode
    • 获取全局路径 - GetPath
    • 设置全局路径 - SetPath
    • 读取用户自定义设置 - GetConfig
    • 修改用户自定义设置 - SetConfig
    • 修改用户自定义设置 - SetConfigByKey
  • 其他

    • 注册到后台 - Reg
    • 创建OLA对象
    • 释放OLA对象 - DestroyCOLAPlugInterFace
    • 释放字符串内存 - FreeStringPtr
    • 读取字符串大小 - GetStringSize
    • 从内存地址读取字符串 - GetStringFromPtr
    • 执行cmd指令 - ExecuteCmd
  • 系统

    • 控制窗口任务栏图标 - ShowTaskBarIcon
    • 检测UAC状态 - CheckUAC
    • 设置UAC状态 - SetUAC
    • 运行指定程序 - RunApp
    • 延时指定毫秒 - Delay
    • 延时指定随机时间 - Delays
    • 拖动文件到窗口 - SendDropFiles

旋转图片 - RotateImage

函数简介

将图片旋转指定的角度。此函数可以将图片按照指定的角度进行旋转,支持任意角度的旋转,并自动调整输出图片的大小以容纳旋转后的内容。旋转时使用高质量的插值算法以保持图像质量,适用于图像预处理、界面设计等场景。

接口名称

RotateImage

DLL调用

long RotateImage(long ola, long image_ptr, double angle)

参数定义:

  • ola (长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。
  • image_ptr (长整型数): 要旋转的图片句柄。
  • angle (双精度浮点数): 旋转角度,单位为度,正值表示顺时针旋转,负值表示逆时针旋转。

示例:

// 加载图片并进行旋转
long image = LoadImage(ola, "D:\\test\\source.png");
if (image != 0) {
    // 获取原图尺寸
    int width, height;
    GetImageSize(ola, image, &width, &height);
    printf("原图大小:%d x %d\n", width, height);
    
    // 旋转90度(顺时针)
    long rotated90 = RotateImage(ola, image, 90.0f);
    if (rotated90 != 0) {
        SaveImageFromPtr(ola, rotated90, "D:\\test\\rotated90.png");
        printf("90度旋转完成\n");
        FreeImagePtr(ola, rotated90);
    }
    
    // 旋转180度
    long rotated180 = RotateImage(ola, image, 180.0f);
    if (rotated180 != 0) {
        SaveImageFromPtr(ola, rotated180, "D:\\test\\rotated180.png");
        printf("180度旋转完成\n");
        FreeImagePtr(ola, rotated180);
    }
    
    // 旋转45度(会自动调整输出图片大小)
    long rotated45 = RotateImage(ola, image, 45.0f);
    if (rotated45 != 0) {
        SaveImageFromPtr(ola, rotated45, "D:\\test\\rotated45.png");
        printf("45度旋转完成\n");
        FreeImagePtr(ola, rotated45);
    }
    
    // 逆时针旋转30度
    long rotatedMinus30 = RotateImage(ola, image, -30.0f);
    if (rotatedMinus30 != 0) {
        SaveImageFromPtr(ola, rotatedMinus30, "D:\\test\\rotated_minus30.png");
        printf("逆时针30度旋转完成\n");
        FreeImagePtr(ola, rotatedMinus30);
    }
    
    FreeImagePtr(ola, image);
}

// 批量处理图片旋转的辅助函数
void RotateImages(const char* input_dir, const char* output_dir, float angle) {
    char search_path[256];
    sprintf(search_path, "%s\\*.png", input_dir);
    
    WIN32_FIND_DATA fd;
    HANDLE hFind = FindFirstFile(search_path, &fd);
    if (hFind != INVALID_HANDLE_VALUE) {
        do {
            if (!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
                char input_path[512], output_path[512];
                sprintf(input_path, "%s\\%s", input_dir, fd.cFileName);
                sprintf(output_path, "%s\\rotated_%s", output_dir, fd.cFileName);
                
                long image = LoadImage(ola, input_path);
                if (image != 0) {
                    long rotated = RotateImage(ola, image, angle);
                    if (rotated != 0) {
                        SaveImageFromPtr(ola, rotated, output_path);
                        FreeImagePtr(ola, rotated);
                    }
                    FreeImagePtr(ola, image);
                }
            }
        } while (FindNextFile(hFind, &fd));
        FindClose(hFind);
    }
}

COM调用

long RotateImage(long image_ptr, double angle)

参数定义:

  • image_ptr (长整型数): 要旋转的图片句柄。
  • angle (双精度点数): 旋转角度,单位为度,正值表示顺时针旋转,负值表示逆时针旋转。

示例:

# 加载图片并进行旋转
image = ola.LoadImage("D:\\test\\source.png")
if image != 0:
    # 获取原图尺寸
    width = height = 0
    ola.GetImageSize(image, width, height)
    messagebox(f"原图大小:{width} x {height}")
    
    # 旋转90度(顺时针)
    rotated90 = ola.RotateImage(image, 90.0)
    if rotated90 != 0:
        ola.SaveImageFromPtr(rotated90, "D:\\test\\rotated90.png")
        messagebox("90度旋转完成")
        ola.FreeImagePtr(rotated90)
    
    # 旋转180度
    rotated180 = ola.RotateImage(image, 180.0)
    if rotated180 != 0:
        ola.SaveImageFromPtr(rotated180, "D:\\test\\rotated180.png")
        messagebox("180度旋转完成")
        ola.FreeImagePtr(rotated180)
    
    # 旋转45度(会自动调整输出图片大小)
    rotated45 = ola.RotateImage(image, 45.0)
    if rotated45 != 0:
        ola.SaveImageFromPtr(rotated45, "D:\\test\\rotated45.png")
        messagebox("45度旋转完成")
        ola.FreeImagePtr(rotated45)
    
    # 逆时针旋转30度
    rotated_minus30 = ola.RotateImage(image, -30.0)
    if rotated_minus30 != 0:
        ola.SaveImageFromPtr(rotated_minus30, "D:\\test\\rotated_minus30.png")
        messagebox("逆时针30度旋转完成")
        ola.FreeImagePtr(rotated_minus30)
    
    ola.FreeImagePtr(image)

# 批量处理图片旋转的辅助函数
def rotate_images(input_dir, output_dir, angle):
    import os
    from glob import glob
    
    # 确保输出目录存在
    os.makedirs(output_dir, exist_ok=True)
    
    # 处理所有PNG文件
    for input_path in glob(os.path.join(input_dir, "*.png")):
        filename = os.path.basename(input_path)
        output_path = os.path.join(output_dir, f"rotated_{filename}")
        
        image = ola.LoadImage(input_path)
        if image != 0:
            rotated = ola.RotateImage(image, angle)
            if rotated != 0:
                ola.SaveImageFromPtr(rotated, output_path)
                ola.FreeImagePtr(rotated)
            ola.FreeImagePtr(image)

返回值

长整型数:

  • 0: 旋转失败
  • 非0: 旋转成功,返回新图片的句柄

注意事项

  1. 旋转角度为正值时顺时针旋转,为负值时逆时针旋转
  2. 对于非90度的倍数旋转,输出图片的尺寸会自动调整以容纳完整的旋转结果
  3. 旋转后会返回新的图片句柄,原图片不会被修改
  4. 新图片句柄使用完后需要调用 FreeImagePtr 释放内存
  5. 如果需要在旋转的同时调整图片大小,可以配合使用 ReSize 或 ScalePixels 函数
Last Updated:
Prev
base64字符串转为图片 - Base64ToImage
Next
覆盖图片 - CoverImage