Try this:
#include <GDIPlus.au3>
_GDIPlus_Startup()
$hImage=_GDIPlus_ImageLoadFromFile(@ScriptDir & "1.png")
$hNewBitmap = _GDIPlus_ImageShapeCircle($hImage, _GDIPlus_ImageGetWidth($hImage) /2)
_GDIPlus_ImageSaveToFile($hNewBitmap, @ScriptDir & "2.png")
_GDIPlus_ImageDispose($hImage)
_GDIPlus_BitmapDispose($hNewBitmap)
_GDIPlus_Shutdown()
ShellExecute(@ScriptDir & "2.png")
Exit
Func _GDIPlus_ImageShapeCircle($hBitmap, $iRadius, $iTiling = 4) ;coded by UEZ 2012-12-17
Local $iWidth = $iRadius * 2, $iHeight = $iWidth
Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateTexture", "ptr", $hImage, "int", $iTiling, "int*", 0)
If @error Then Return SetError(1, 0, 0)
Local $hTexture = $aResult[3]
$aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iWidth, "int", $iHeight, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
If @error Then Return SetError(2, 0, 0)
Local $hImage = $aResult[6]
Local $hGfxCtxt = _GDIPlus_ImageGetGraphicsContext($hImage)
_GDIPlus_GraphicsSetSmoothingMode($hGfxCtxt, 2)
DllCall($ghGDIPDll, "uint", "GdipSetPixelOffsetMode", "handle", $hGfxCtxt, "int", 2)
_GDIPlus_GraphicsFillEllipse($hGfxCtxt, 0, 0, $iWidth, $iHeight, $hTexture)
_GDIPlus_BrushDispose($hTexture)
_GDIPlus_GraphicsDispose($hGfxCtxt)
Return $hImage
EndFunc
Func _GDIPlus_ImageShapeCircle2($hBitmap, $iRadius, $fDX = 0, $fDY = 0, $iTiling = 4) ;coded by UEZ 2012-12-17
Local $iWidth = $iRadius * 2
If _GDIPlus_ImageGetWidth($hBitmap) < $iWidth Then $iWidth = _GDIPlus_ImageGetWidth($hBitmap)
Local $iHeight = $iWidth
Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateTexture2", "handle", $hBitmap, "int", $iTiling, "float", $fDX, "float", $fDY, "float", $iWidth, "float", $iHeight, "int*", 0)
If @error Then Return SetError(1, 0, 0)
Local $hTexture = $aResult[7]
$aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iWidth, "int", $iHeight, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
If @error Then Return SetError(2, 0, 0)
Local $hImage = $aResult[6]
Local $hGfxCtxt = _GDIPlus_ImageGetGraphicsContext($hImage)
_GDIPlus_GraphicsSetSmoothingMode($hGfxCtxt, 2)
DllCall($ghGDIPDll, "uint", "GdipSetPixelOffsetMode", "handle", $hGfxCtxt, "int", 2)
_GDIPlus_GraphicsFillEllipse($hGfxCtxt, 0, 0, $iWidth, $iHeight, $hTexture)
_GDIPlus_BrushDispose($hTexture)
_GDIPlus_GraphicsDispose($hGfxCtxt)
Return $hImage
EndFunc
Br,
UEZ