找回密码
 加入
搜索
查看: 1776|回复: 6

[网络通信] [已解决]如何将“GDI+”绘制的图形保存到文件?

[复制链接]
发表于 2019-1-4 13:53:11 | 显示全部楼层 |阅读模式
本帖最后由 jianganew 于 2019-1-7 16:51 编辑

请教各位,如何将“GDI+”绘制的图形保存到文件?_GDIPlus_ImageSaveToFile不行。
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>

Example()

Func Example()
    _GDIPlus_Startup() ;初始化 GDI+
    Local Const $iWidth = 600, $iHeight = 600, $iBgColor = 0x303030 ; $iBgColor 背景颜色格式: RRGGBB

    Local $hGUI = GUICreate("GDI+ 示例 (" & @ScriptName & ")", $iWidth, $iHeight) ;创建一个测试 GUI
    GUISetBkColor($iBgColor, $hGUI) ;设置 GUI 的背景颜色
    GUISetState(@SW_SHOW)

    Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI) ;在句柄指定的窗口创建图形对象
    _GDIPlus_GraphicsSetSmoothingMode($hGraphics, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ;设置图形对象渲染质量(抗锯齿)
    Local $hPen = _GDIPlus_PenCreate(0xFFABCDEF, 4) ;颜色格式 AARRGGBB (十六进制)

    _GDIPlus_GraphicsDrawEllipse($hGraphics, 10.5, 50.1, 580.25, 500.75, $hPen)
        
      ;_GDIPlus_ImageSaveToFile($hGUI, @ScriptDir & "\1.bmp")
        
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ;清理 GDI+ 资源
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    GUIDelete($hGUI)
EndFunc   ;==>Example

发表于 2019-1-4 15:53:37 | 显示全部楼层
本帖最后由 水木子 于 2019-1-4 15:56 编辑

_GDIPlus_ImageSaveToFile  肯定可以啊!
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>

_GDIPlus_Startup()
Local Const $iWidth = 600, $iHeight = 600, $iBgColor = 0xFFEE88BB

$hGui = GUICreate('', $iWidth, $iHeight)
GUISetState()

$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
$hGraphics = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphic)
$hGfxCtxt = _GDIPlus_ImageGetGraphicsContext($hGraphics)
_GDIPlus_GraphicsSetSmoothingMode($hGfxCtxt, $GDIP_SMOOTHINGMODE_HIGHQUALITY)
$hPen = _GDIPlus_PenCreate(0xFFABCDEF, 4)
$hBrush = _GDIPlus_BrushCreateSolid($iBgColor)

_GDIPlus_GraphicsFillRect($hGfxCtxt, 0, 0, $iWidth, $iHeight, $hBrush)
_GDIPlus_GraphicsDrawEllipse($hGfxCtxt, 10.5, 50.1, 580.25, 500.75, $hPen)
_GDIPlus_GraphicsDrawImage($hGraphic, $hGraphics, 0, 0)

_GDIPlus_ImageSaveToFile($hGraphics, @ScriptDir & '\1.bmp')

Do
Until GUIGetMsg() = -3

_GDIPlus_PenDispose($hPen)
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_GraphicsDispose($hGfxCtxt)
_GDIPlus_BitmapDispose($hGraphics)
_GDIPlus_Shutdown()







 楼主| 发表于 2019-1-7 16:49:22 | 显示全部楼层
多谢水版,已OK 。
 楼主| 发表于 2019-1-7 16:49:42 | 显示全部楼层
多谢水版,已OK 。
发表于 2019-1-14 09:09:34 | 显示全部楼层
路过赞金币!
发表于 2019-1-14 10:35:12 | 显示全部楼层
刚碰到需要这方面的代码,真是巧,多谢了
发表于 2019-1-20 04:14:02 | 显示全部楼层
路过赞金币!1
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 20:42 , Processed in 0.128469 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表