返回列表 发帖

[图形处理] [已解决]求教怎么利用GDI从图片中截取指定位置指定大小的图?

本帖最后由 zghwelcome 于 2017-12-4 19:39 编辑

求教怎么利用GDI从图片中截取指定位置指定大小的图?


如这个样图中,想从原图位置 x=60,y=300,截图一张 宽为80,高为60的新图并保存,请问用GDI该怎么实现?谢谢
看了GDI的例子,依葫芦画瓢都失败了
附件: 您需要登录才可以下载或查看附件。没有帐号?加入

活到老,学到老。

TOP

回复 2# 水木子

GDI里面的图像对象,图形对象太令人困惑了,求水版看看我代码该怎么改
  1. #include <GDIPlus.au3>
  2. #include <ScreenCapture.au3>
  3. #include <WinAPI.au3>


  4. _GDIPlus_Startup()
  5. $hImage1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & '\1.jpg')
  6. $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1)
  7. _GDIPlus_GraphicsDrawImageRect($hGraphic, $hImage1, 0, 0, 500, 500)
  8. Local $pIA = _GDIPlus_ImageAttributesCreate()
  9. _GDIPlus_GraphicsDrawImageRectRect($hGraphic, $hBitmap1, 50, 50, 100, 100, 580, 580, 100, 100, $pIA)
  10. _GDIPlus_ImageSaveToFile($hImage1, @ScriptDir & "\2.jpg")
  11. _GDIPlus_ImageDispose($hImage1)
  12. _GDIPlus_GraphicsDispose($hGraphic)
  13. _GDIPlus_ImageAttributesDispose($pIA)
  14. _GDIPlus_Shutdown()

  15. ShellExecute(@ScriptDir & "\2.jpg")
复制代码

TOP

回复 3# zghwelcome


   我觉得 ImageLoadFromFile 后其实用 BitmapCloneArea 直接克隆区域会更简单
1

评分人数

  • zghwelcome

TOP

回复 4# afan


谢谢A版指点,这么做确实很简单!
  1. #include <GDIPlus.au3>
  2. _GDIPlus_Startup()
  3. $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & '\1.jpg')
  4. $hClone = _GDIPlus_BitmapCloneArea($hImage, 100, 100, 200, 100, $GDIP_PXF24RGB)
  5. _GDIPlus_ImageSaveToFile($hClone, @ScriptDir & "\2.jpg")
  6. _GDIPlus_ImageDispose($hClone)
  7. _GDIPlus_ImageDispose($hImage)
  8. _GDIPlus_Shutdown()
  9. ShellExecute(@ScriptDir & "\2.jpg")
复制代码
不知道水版的方法该怎么实现。

TOP

回复 5# zghwelcome

刚刚试了下,确实也可以,不过可能我想复杂了。学习了!谢谢!

TOP

回复 4# afan

方法简单实用,受教了!

TOP

來學學

TOP

返回列表