je pense que cela va t'intéresser
ici:
http://www.purebasic.fr/english/viewtop ... 12&t=11387
car il y a pleins de cliparts gratuits sur le net
il y a un code pour charger des metafiile.WMF , au cas ou... j'ai mis a jour le code à jour pour PB 261
et pourraient être converti en *.jpg et sauvegardé pour inclure dans ton fichier xml
Cordialement
Code : Tout sélectionner
;Wmf-View (extended)
;Get size of Wmf-File (only Wmf2-portable <-which you can find in the end mostly, and Emf)
;Mischa Brandt
Structure sizeofwmf
w.l
h.l
EndStructure
Global WmfSize.sizeofwmf
Procedure LoadWmfImage(name.s)
If name<>""
WmfSize\w=-1:WmfSize\h=-1
hemf = GetEnhMetaFile_(name)
If hemf=0
hmf = GetMetaFile_(name)
If hmf=0
size=FileSize(name)-22
ReadFile(1,name)
FileSeek(1,6)
l=ReadWord(1):t=ReadWord(1)
r=ReadWord(1):b=ReadWord(1)
WmfSize\w=r-l:WmfSize\h=b-t
FileSeek(1,22)
*buffer=AllocateMemory(size)
ReadData(1,*buffer,size)
CloseFile(1)
Else
size = GetMetaFileBitsEx_(hmf,size,0)
*buffer=AllocateMemory(size)
GetMetaFileBitsEx_(hmf,size,*buffer)
EndIf
hemf = SetWinMetaFileBits_(size,*buffer,GetDC_(0),0)
FreeMemory(*buffer)
Else
ReadFile(1,name)
FileSeek(1,8)
l=ReadLong(1):t=ReadLong(1)
r=ReadLong(1):b=ReadLong(1)
WmfSize\w=r-l+1:WmfSize\h=b-t+1
CloseFile(1)
EndIf
ProcedureReturn hemf
EndIf
EndProcedure
Procedure DrawWmfImage(hnd,sdc,x,y,b,h)
SetRect_(WmfRect.RECT,x,y,x+b-1,y+h-1)
PlayEnhMetaFile_(sdc,hnd,WmfRect)
EndProcedure
Procedure FreeWmfImage(hnd)
DeleteEnhMetaFile_(hnd)
EndProcedure
hwnd=OpenWindow(0, 100, 100, 400, 300,"Wmf-Test", #PB_Window_SystemMenu)
CreateGadgetList(hwnd)
ButtonGadget(1, 100, 250, 200, 20, "Load Wmf")
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 1
image=LoadWmfImage(OpenFileRequester("Open","","Metafile|*.wmf;*.emf",0))
MessageRequester("Size of Clipart","Width: "+Str(WmfSize\w)+Chr(13)+Chr(10)+"Height: "+Str(WmfSize\h),0)
DrawWmfImage(image,GetDC_(hwnd),100,25,200,200)
FreeWmfImage(image)
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow