| This wraps devil and provides a function that convetrs and saves an image into either png/bmp/tga/gif etc for you. Not all of devil is wrapped, only enough to create and save images. You need the devil dll in the same directory as the source. 
 
 
Strict
Global cir:Int[] = New Int[20]
Local lib =loadlibrarya("DevIl.dll")
Global ilInit() "win32"
Global ilGenImages(size:Int,images:Byte Ptr) "win32"
Global ilBindImage(image:Int) "win32"
Global ilTexImage(width:Int,height:Int,depth:Int,bpp:Int,format:Int,Typ:Int,data:Byte Ptr) "win32"
Global ilSaveImage(file:Byte Ptr) "win32"
Global ilSave(typ:Int,file:Byte Ptr) "win32"
' IL_COLOUR_INDEX							0x1900
'#define IL_COLOR_INDEX							0x1900
Const IL_RGB = $1907
'#define IL_RGBA								0x1908
'#define IL_BGR								0x80E0
Const IL_BGRA = $80E1
'#define IL_LUMINANCE							0x1909
'#define IL_LUMINANCE_ALPHA						0x190A
Const IL_BMP =$0420
Const IL_JPG=$0425
Const IL_PNG=$042A
Const IL_TGA=$042D
Const IL_GIF=$0436
Const IL_UNSIGNED_BYTE =$1401
If lib
	Print "opened dll"
	ilInit = getProcAddress(lib,"ilInit")
	ilGenImages = getProcAddress(lib,"ilGenImages")
	ilBindImage = getProcAddress(lib,"ilBindImage")
	ilTexImage = getprocAddress(lib,"ilTexImage")
	ilSaveImage = getprocaddress(lib,"ilSaveImage")
	ilSave = getprocaddress(lib,"ilSave")
	If ilInit = Null Or ilGenImages=Null Or ilTexImage=Null Or ilSaveImage = Null
		Print "No @#!*."
	EndIf
Else
	Print "Failed to open dll"
EndIf
ilInit()
Function ilSaveFile( img:Timage,file:String ,format:Int = il_bmp)
	
	Select format
		Case il_bmp
			file:+".bmp"
		Case il_jpg
			file:+".jpg"
		Case il_png
			file:+".png"
		Case il_gif
			file:+".gif"
		Case il_Tga
			file:+".tga"
	End Select
	
	
	If FileType(file)=1
		DeleteFile file
	EndIf
	
	Local ilImg = ilCreateImage()
	ilBindImage(ilimg)
	ilTexImg( img )
	ilSave( format,file.tocstring() )
	
End Function
Function ilTexImg( img:Timage )
	
	Local width,height
	
	width = ImageWidth(img)
	height =ImageHeight(img)
	
	Local rgb:Byte Ptr = MemAlloc(width*height*4)
	Local pix:Tpixmap = LockImage(img,0,True,False)
	For Local y=0 Until height
	For Local x=0 Until width
		Local boff = y*(width*4)+(x*4)
		Local b:Byte Ptr = pix.pixelptr(x,y)
		rgb[boff] = b[0]
		rgb[boff+1]=b[1]
		rgb[boff+2]=b[2]
		rgb[boff+3]=b[3]
	Next
	Next
	UnlockImage( img )
	ilteximage(width,height,1,4,il_bgra,il_unsigned_byte,rgb)
	MemFree rgb
End Function
Function ilCreateImage()
	Local b:Int[20]
	Local d:Byte Ptr = Byte Ptr(b)
	ilGenImages(1,d)
	Return b[0]
End Function
 
 |