找回密码  加入

AUTOIT CN

搜索
查看: 454|回复: 2

[网络通信] 【已解决】请教如何生成一张指定大小指定颜色的纯色图?

[复制链接]
发表于 2018-9-29 14:34:41 | 显示全部楼层 |阅读模式
本帖最后由 zghwelcome 于 2018-9-29 17:37 编辑

下面是我的代码,效率低而且边缘有噪点。求GDI大佬正确的写法该如何写?谢谢!
  1. #include <colorConstants.au3>
  2. #include <ScreenCapture.au3>
  3. Local $iWidth = 550, $iHeight = 550, $iColor = $color_red
  4. _GDIPlus_Startup()
  5. Local $hHBmp = _ScreenCapture_Capture("", 0, 0, $iWidth, $iWidth)
  6. Local $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hHBmp)
  7. For $iY = 0 To $iHeight - 1
  8.         For $iX = 0 To $iWidth - 1
  9.                 _GDIPlus_BitmapSetPixel($hBitmap, $iX, $iY, $iColor)
  10.         Next
  11. Next
  12. _GDIPlus_ImageSaveToFile($hBitmap, @ScriptDir & "\au3生成图片示例一个.jpg")
  13. _WinAPI_DeleteObject($hHBmp)
  14. _GDIPlus_BitmapDispose($hBitmap)
  15. _GDIPlus_Shutdown()
复制代码

 楼主| 发表于 2018-9-29 16:39:04 | 显示全部楼层
本帖最后由 zghwelcome 于 2018-9-29 17:36 编辑

下面的代码为什么只能黑色或白色背景呢?

  1. #include <Constants.au3>
  2. #include <GDIPlus.au3>
  3. #include <WinAPIGdi.au3>

  4. ;============ 问题解决了

  5. Local $iWidth = 550, $iHeight = 550, $iColor = Hex($color_red, 6)
  6. $iColor = Hex('0xFF' & $iColor, 8) ;//原来的错误代码
  7. $iColor = '0x' & Hex('0xFF' & $iColor, 8) ;//修正后的
  8. _GDIPlus_Startup()
  9. Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight)
  10. Local $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
  11. _GDIPlus_GraphicsClear($hGraphics, $iColor)
  12. _GDIPlus_ImageSaveToFile($hBitmap, @ScriptDir & "\纯色图.jpg")
  13. _GDIPlus_GraphicsDispose($hGraphics)
  14. _GDIPlus_ImageDispose($hBitmap)
  15. _GDIPlus_Shutdown()

复制代码




回复 支持 0 反对 1

使用道具 举报

发表于 2018-9-29 15:47:03 | 显示全部楼层
是这样子



  1. #include <ScreenCapture.au3>
  2. Local $iWidth = 550, $iHeight = 550
  3. Example()
  4. Func Example()
  5.         Local $hGUI
  6.         ; 创建 GUI
  7.         $hGUI = GUICreate("屏幕捕获", $iWidth, $iHeight, -1, -1)
  8.         GUISetBkColor(0x009900)
  9.         GUISetState(@SW_SHOW)
  10.         Sleep(250)
  11.         ; 捕获窗口
  12.         _ScreenCapture_CaptureWnd(@ScriptDir & "\A1.jpg", $hGUI, 20, 40, $iWidth - 40, $iHeight - 45)
  13.         ShellExecute(@ScriptDir & "\A1.jpg")
  14. EndFunc   ;==>Example
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2019-6-25 04:38 , Processed in 0.062498 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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