
je suis entrain de programmer une application purement coder en Pb, cette apli consiste a envoyez un flux des images "capture d Ecran" par TCP pour cella il faux que je convertie l image en binaire après l envoyer.. voila mon code quel qu un d expérience peu me corriger et merci d avance

Code : Tout sélectionner
Structure GdiplusStartupInput
GdiPlusVersion.l
*DebugEventCallback.DEBUG_EVENT
SuppressBackgroundThread.l
SuppressExternalCodecs.l
EndStructure
Structure EncoderParameter
Guid.GUID
NumberOfValues.l
Type.l
Value.l
EndStructure
Structure EncoderParameters
Count.l
Parameter.EncoderParameter[1]
EndStructure
Defined *token
GdiplusStartupInput.GdiplusStartupInput\GdiPlusVersion=1
Prototype GdiplusStartup(a,b,c)
Prototype GdipSaveImageToStream(a,b,c,d)
Prototype GdipDisposeImage(a)
Prototype GdiplusShutdown(a)
Prototype GdipCreateBitmapFromHBITMAP(a,b,c)
lib_gdiplus = OpenLibrary(#PB_Any, "GDIPlus.dll")
Debug lib_gdiplus
GdiplusStartup_.GdiplusStartup=GetFunction(lib_gdiplus,"GdiplusStartup")
GdipSaveImageToStream_.GdipSaveImageToStream=GetFunction(lib_gdiplus,"GdipSaveImageToStream")
GdipDisposeImage_.GdipDisposeImage=GetFunction(lib_gdiplus,"GdipDisposeImage")
GdiplusShutdown_.GdiplusShutdown=GetFunction(lib_gdiplus,"GdiplusShutdown")
GdipCreateBitmapFromHBITMAP_.GdipCreateBitmapFromHBITMAP=GetFunction(lib_gdiplus,"GdipCreateBitmapFromHBITMAP")
Debug GdiplusStartup_(*token, @GdiplusStartupInput,#NUL)
Define *IStream
Debug CreateStreamOnHGlobal_(#NUL,#True,@*IStream)
Debug *IStream
With encoderparams.EncoderParameters
\Count = 1
\Parameter[0]\Type = 4
\Parameter[0]\NumberOfValues = 1
\parameter[0]\Value = 100
EndWith
CopyMemory(?clsid_EncoderQuality, encoderparams\parameter[0]\Guid, SizeOf(GUID))
Define *image
CreateImage(0, 640,640)
StartDrawing(ImageOutput(0))
Box(0,0,640,640,#White)
Circle(319,319,319,#Blue)
Circle(319,319,219,#Green)
Circle(319,319,119,#Yellow)
StopDrawing()
Debug ImageID(0)
Debug GdipCreateBitmapFromHBITMAP_(ImageID(0), 0, @*image)
Debug *image
Debug GdipSaveImageToStream_(*image,*IStream,?clsid_jpeg, @encoderparams)
MessageRequester("","")
GdipDisposeImage_(*image)
Define *hMemory
GetHGlobalFromStream_(*IStream,@*hMemory)
sizeimage= GlobalSize_(*hMemory)
Debug sizeimage
*Binimage=AllocateMemory(sizeimage)
*Binimage=GlobalLock_(*hMemory)
tVARIANT.VARIANT
DispCallFunc_(*IStream,16,4,23,0,0,0,@tVARIANT)
GlobalFree_(*hMemory)
GdiplusShutdown_(*token)
CloseLibrary(lib_gdiplus)
DataSection
clsid_jpeg: ; clsid for jpeg image format
Data.l $557CF401
Data.w $1A04
Data.w $11D3
Data.b $9A,$73,$00,$00,$F8,$1E,$F3,$2E
clsid_EncoderQuality:
Data.l $1D5BE4B5
Data.w $FA4A
Data.w $452D
Data.b $9C,$DD,$5D,$B3,$51,$05,$E7,$EB
EndDataSection