拓冰建站拓冰建站
首页 / 资讯中心 / 正文

GdipCreateBitmapFromFile使用详解及易语言示例

GdipCreateBitmapFromFile是 GDI 库中的一个核心函数用于从磁盘文件创建一个Gdiplus::Bitmap对象。其返回值是一个GpStatus枚举值用于指示函数执行的成功或失败状态。一、函数返回值详解返回值 (GpStatus)数值含义Ok0函数执行成功已成功从文件创建位图对象。InvalidParameter1传入的参数无效例如bitmap指针为 NULL 或filename为 NULL。OutOfMemory3内存不足无法完成操作。FileNotFound11指定的图像文件未找到。UnknownImageFormat14文件格式不被识别或不受支持。Win32Error23发生了一个 Win32 API 错误。NotImplemented120对于该图像格式GDI 未实现解码器。核心要点调用此函数后必须检查返回值。只有当返回值为Ok(0) 时才表示位图对象创建成功后续才能安全使用。否则表示加载失败传入的bitmap指针不会被赋值。二、具体应用场景此函数是 GDI 加载图像的基础主要应用于加载非标准位图格式传统的 Windows GDI 主要支持 BMP 格式。GDI 通过此函数可以加载 JPEG、PNG、GIF、TIFF 等多种格式的图像文件。保留图像高级特性对于 PNG 等格式可以保留 Alpha 通道信息用于实现半透明、透明混合等高级渲染效果。图像处理与显示将加载的Bitmap对象传递给Graphics对象的绘制函数如GdipDrawImageRectI即可在窗口、控件或内存位图上进行显示、缩放、旋转等操作。三、易语言调用示例以下是一个完整的易语言示例演示如何初始化 GDI使用GdipCreateBitmapFromFile加载一张图片并在窗口上绘制出来。.版本 2 .支持库 spec .程序集 窗口程序集_启动窗口 .程序集变量 g_Token, 整数型, , , GDI令牌 .程序集变量 g_pBitmap, 整数型, , , GDI位图对象指针 .子程序 __启动窗口_创建完毕 .子程序 _按钮_加载图片_被单击 .局部变量 stGdiplusStartupInput, GdiplusStartupInput .局部变量 status, 整数型 .局部变量 hGraphics, 整数型 .局部变量 文件路径, 文本型 1. 初始化 GDI stGdiplusStartupInput.GdiplusVersion 1 status GdiplusStartup (g_Token, stGdiplusStartupInput, 0) .如果真 (status ≠ 0) 调试输出 (“GDI 初始化失败错误码”, status) 返回 () .如果真结束 2. 选择图片文件 通用对话框1.类型 0 通用对话框1.过滤器 “图片文件|*.jpg;*.png;*.bmp;*.gif” .如果真 (通用对话框1.打开 () 假) GdiplusShutdown (g_Token) 返回 () .如果真结束 文件路径 通用对话框1.文件名 3. 使用 GdipCreateBitmapFromFile 加载图片 注意GDI 函数使用 Unicode 字符串此处易语言文本为 ANSI需转换。 为简化示例假设文件路径不含中文。实际应用中应进行转换。 status GdipCreateBitmapFromFile (文件路径, g_pBitmap) .如果真 (status ≠ 0) 调试输出 (“加载图片失败错误码”, status) GdiplusShutdown (g_Token) 返回 () .如果真结束 调试输出 (“图片加载成功位图指针”, g_pBitmap) 4. 在窗口上绘制图片 hGraphics GetDC (取窗口句柄 ()) .如果真 (hGraphics ≠ 0) GdipDrawImageRectI (hGraphics, g_pBitmap, 10, 50, 300, 200) 在坐标(10,50)处绘制宽300高200 ReleaseDC (取窗口句柄 (), hGraphics) .如果真结束 .子程序 __启动窗口_将被销毁 5. 清理资源 .如果真 (g_pBitmap ≠ 0) GdipDisposeImage (g_pBitmap) g_pBitmap 0.如果真结束 .如果真 (g_Token ≠ 0) GdiplusShutdown (g_Token) g_Token 0 .如果真结束 以下是所需的 API 声明 .DLL命令 GdiplusStartup, 整数型, gdiplus.dll, GdiplusStartup .参数 token, 整数型, 传址 .参数 input, GdiplusStartupInput .参数 output, 整数型.DLL命令 GdiplusShutdown, 整数型, gdiplus.dll, GdiplusShutdown .参数 token, 整数型 .DLL命令 GdipCreateBitmapFromFile, 整数型, gdiplus.dll, GdipCreateBitmapFromFile .参数 filename, 文本型 .参数 bitmap, 整数型, 传址 .DLL命令 GdipDrawImageRectI, 整数型, gdiplus.dll, GdipDrawImageRectI .参数 graphics, 整数型 .参数 image, 整数型 .参数 x, 整数型 .参数 y, 整数型 .参数 width, 整数型 .参数 height, 整数型 .DLL命令 GdipDisposeImage, 整数型, gdiplus.dll, GdipDisposeImage .参数 image, 整数型 .DLL命令 GetDC, 整数型, user32.dll, GetDC .参数 hwnd, 整数型 .DLL命令 ReleaseDC, 整数型, user32.dll, ReleaseDC .参数 hwnd, 整数型 .参数 hdc, 整数型 GDI 初始化结构体 .数据类型 GdiplusStartupInput .成员 GdiplusVersion, 整数型 .成员 DebugEventCallback, 整数型 .成员 SuppressBackgroundThread, 整数型 .成员 SuppressExternalCodecs, 整数型关键步骤说明初始化与清理使用GdiplusStartup和GdiplusShutdown管理 GDI 生命周期。加载图片核心调用GdipCreateBitmapFromFile并检查其返回值是否为Ok(0)。路径问题GDI 函数需要 Unicode 字符串。此简化示例未做转换若路径包含中文可能导致失败。生产代码应将 ANSI 路径转换为 Unicode。资源释放使用GdipDisposeImage释放Bitmap对象防止内存泄漏。参考来源win32汇编环境窗口程序中使用GDI显示jpg图片在win32汇编环境中使用GDI显示png、jpg等图片C加载PNG图片使用PNG实现半透明的窗体使用GDI进行图片处理时要注意的问题
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门