GUICtrlCreatePic() supported types are BMP, JPG, GIF but no PNG.
If you really want to use png files, you can do it like here:
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
Local $idWindow = GUICreate("Image", 400, 200)
Local $cPic = GUICtrlCreatePic('', 0, 0, 400, 200)
ImageToCtrl("C:\temp\image.png", $cPic)
GUICtrlSetState($cPic, $GUI_DISABLE)
Local $idButton_Close = GUICtrlCreateButton("Close",360,120)
GUISetState(@SW_SHOW, $idWindow)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $idButton_Close
ExitLoop
EndSwitch
WEnd
Func ImageToCtrl($sImage, $cCtrl)
_GDIPlus_Startup()
Local $hImage = _GDIPlus_ImageLoadFromFile($sImage)
Local $iWidth = _GDIPlus_ImageGetWidth($hImage)
Local $iHeight = _GDIPlus_ImageGetHeight($hImage)
Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight)
Local $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, 0, 0, $iWidth, $iHeight)
Local $hHBITMAP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
_WinAPI_DeleteObject(GUICtrlSendMsg($cCtrl, 0x0172, 0, $hHBITMAP))
_WinAPI_DeleteObject($hHBITMAP)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
EndFunc