Image AutoIT脚本-比较绘制';使用GDI';s旋转图像

Image AutoIT脚本-比较绘制';使用GDI';s旋转图像,image,rotation,automation,autoit,Image,Rotation,Automation,Autoit,我有一个图像,并用MS Paint和GDI旋转它。我想展示两种方法的旋转图像是相同的 这是我必须用GDI旋转图像的代码 #include <GDIPlus.au3> _GDIPlus_Startup() $hImage1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Picture.gif") $hGraphic1 = _GDIPlus_ImageGetGraphicsContext($hImage1) $hImage2 = _G

我有一个图像,并用MS Paint和GDI旋转它。我想展示两种方法的旋转图像是相同的

这是我必须用GDI旋转图像的代码

#include <GDIPlus.au3>

_GDIPlus_Startup()

$hImage1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Picture.gif")
$hGraphic1 = _GDIPlus_ImageGetGraphicsContext($hImage1)
$hImage2 = _GDIPlus_BitmapCreateFromGraphics(_GDIPlus_ImageGetWidth($hImage1), _GDIPlus_ImageGetHeight($hImage1), $hGraphic1)
$hGraphic2 = _GDIPlus_ImageGetGraphicsContext($hImage2)

$matrix = _GDIPlus_MatrixCreate()
_GDIPlus_MatrixRotate($matrix,90)
_GDIPlus_GraphicsSetTransform($hGraphic2, $matrix)
_GDIPlus_GraphicsDrawImage($hGraphic2, $hImage1, 0, -590)

_GDIPlus_ImageSaveToFile($hImage2, @ScriptDir & "\out.gif")

_GDIPlus_MatrixDispose($matrix)
_GDIPlus_GraphicsDispose($hGraphic1)
_GDIPlus_GraphicsDispose($hGraphic2)
_GDIPlus_ImageDispose($hImage1)
_GDIPlus_ImageDispose($hImage2)

 _GDIPlus_ShutDown ()
然后它识别相同的图像。当我向右旋转90度时,它不会。有人知道会发生什么吗

谢谢



作为参考,AutoIt论坛上也提出了这个问题。

我认为,
$GDIP\u PXF08INDEXED
正在以不同的方式修改图像。在不设置的情况下尝试它,它应该可以工作

此外,您可以使用以下代码翻转图像:

$hImage1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Picture1.gif")
_GDIPlus_ImageRotateFlip($hImage1, 1) ;90°

_GDIPlus_ImageSaveToFile($hImage1, @ScriptDir & "\out.gif")

_GDIPlus_ImageDispose($hImage1)
比尔


UEZ

在AutoIt中旋转时,您使两个图像的尺寸相同,您不想交换宽度和高度吗?
_GDIPlus_MatrixRotate($matrix,0)
$hImage1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Picture1.gif")
_GDIPlus_ImageRotateFlip($hImage1, 1) ;90°

_GDIPlus_ImageSaveToFile($hImage1, @ScriptDir & "\out.gif")

_GDIPlus_ImageDispose($hImage1)