Hi,
we can try to make an excellent library for working with GIF files (http://giflib.sourceforge.net/gif_lib.html). Some unnecessary functions are still present in my lib file. But according to the list of api you can see how it should be.
x64\Release\quantize.obj GifQuantizeBuffer
x64\Release\openbsd-reallocarray.obj openbsd_reallocarray
x64\Release\gif_hash.obj _ClearHashTable
x64\Release\gif_hash.obj _ExistsHashTable
x64\Release\gif_hash.obj _InitHashTable
x64\Release\gif_hash.obj _InsertHashTable
x64\Release\gif_font.obj ??_C@_02PCIJFNDE@?$AN?6@
x64\Release\gif_font.obj GifAsciiTable8x8
x64\Release\gif_font.obj GifDrawBox
x64\Release\gif_font.obj GifDrawBoxedText8x8
x64\Release\gif_font.obj GifDrawRectangle
x64\Release\gif_font.obj GifDrawText8x8
x64\Release\gif_err.obj ??_C@_0BK@IKIOFNPK@Failed?5to?5open?5given?5file@
x64\Release\gif_err.obj ??_C@_0BK@LIJPGAOG@Write?5failed?5?$CIdisk?5full?$DP?$CJ@
x64\Release\gif_err.obj ??_C@_0BK@MDNNIAEK@Data?5is?5not?5in?5GIF?5format@
x64\Release\gif_err.obj ??_C@_0BL@HJMBBCBI@Wrong?5record?5type?5detected@
x64\Release\gif_err.obj ??_C@_0BL@PIPFOKOE@Failed?5to?5close?5given?5file@
x64\Release\gif_err.obj ??_C@_0BN@CEPGKNJC@No?5Image?5Descriptor?5detected@
x64\Release\gif_err.obj ??_C@_0BO@HDIDEIIA@No?5screen?5descriptor?5detected@
x64\Release\gif_err.obj ??_C@_0BO@HJKEPHBI@Failed?5to?5write?5to?5given?5file@
x64\Release\gif_err.obj ??_C@_0BP@NDAFCNML@Failed?5to?5read?5from?5given?5file@
x64\Release\gif_err.obj ??_C@_0CB@KNLMJIBN@Image?5descriptor?5is?5still?5activ@
x64\Release\gif_err.obj ??_C@_0CD@CJKEAJEK@Given?5file?5was?5not?5opened?5for?5r@
x64\Release\gif_err.obj ??_C@_0CD@JFGMLFL@Neither?5global?5nor?5local?5color?5@
x64\Release\gif_err.obj ??_C@_0CD@LLAGPEFG@Failed?5to?5allocate?5required?5mem@
x64\Release\gif_err.obj ??_C@_0CE@NFDFMCNL@Given?5file?5was?5not?5opened?5for?5w@
x64\Release\gif_err.obj ??_C@_0CF@CEHOLGAH@Image?5is?5defective?0?5decoding?5ab@
x64\Release\gif_err.obj ??_C@_0CH@PBNCLFPP@Screen?5descriptor?5has?5already?5b@
x64\Release\gif_err.obj ??_C@_0CJ@MLIKCJGE@Image?5EOF?5detected?5before?5image@
x64\Release\gif_err.obj ??_C@_0CM@JPHCHKPD@Number?5of?5pixels?5bigger?5than?5wi@
x64\Release\gif_err.obj GifErrorString
x64\Release\gifalloc.obj FreeLastSavedImage
x64\Release\gifalloc.obj GifAddExtensionBlock
x64\Release\gifalloc.obj GifApplyTranslation
x64\Release\gifalloc.obj GifBitSize
x64\Release\gifalloc.obj GifFreeExtensions
x64\Release\gifalloc.obj GifFreeMapObject
x64\Release\gifalloc.obj GifFreeSavedImages
x64\Release\gifalloc.obj GifMakeMapObject
x64\Release\gifalloc.obj GifMakeSavedImage
x64\Release\gifalloc.obj GifUnionColorMap
x64\Release\egif_lib.obj ??_C@_02GMLFBBN@wb@
x64\Release\egif_lib.obj ??_C@_06HEIGOEIG@GIF87a@
x64\Release\egif_lib.obj ??_C@_06HOBIMJIM@GIF89a@
x64\Release\egif_lib.obj EGifCloseFile
x64\Release\egif_lib.obj EGifGCBToExtension
x64\Release\egif_lib.obj EGifGCBToSavedExtension
x64\Release\egif_lib.obj EGifGetGifVersion
x64\Release\egif_lib.obj EGifOpen
x64\Release\egif_lib.obj EGifOpenFileHandle
x64\Release\egif_lib.obj EGifOpenFileName
x64\Release\egif_lib.obj EGifPutCode
x64\Release\egif_lib.obj EGifPutCodeNext
x64\Release\egif_lib.obj EGifPutComment
x64\Release\egif_lib.obj EGifPutExtension
x64\Release\egif_lib.obj EGifPutExtensionBlock
x64\Release\egif_lib.obj EGifPutExtensionLeader
x64\Release\egif_lib.obj EGifPutExtensionTrailer
x64\Release\egif_lib.obj EGifPutImageDesc
x64\Release\egif_lib.obj EGifPutLine
x64\Release\egif_lib.obj EGifPutPixel
x64\Release\egif_lib.obj EGifPutScreenDesc
x64\Release\egif_lib.obj EGifSetGifVersion
x64\Release\egif_lib.obj EGifSpew
x64\Release\dgif_lib.obj ??_C@_02JDPG@rb@
x64\Release\dgif_lib.obj ??_C@_06MGBLNLI@GIFVER@
x64\Release\dgif_lib.obj ?_OptionsStorage@?1??__local_stdio_printf_options@@9@9
x64\Release\dgif_lib.obj ?_OptionsStorage@?1??__local_stdio_scanf_options@@9@9
x64\Release\dgif_lib.obj DGifCloseFile
x64\Release\dgif_lib.obj DGifExtensionToGCB
x64\Release\dgif_lib.obj DGifGetCode
x64\Release\dgif_lib.obj DGifGetCodeNext
x64\Release\dgif_lib.obj DGifGetExtension
x64\Release\dgif_lib.obj DGifGetExtensionNext
x64\Release\dgif_lib.obj DGifGetGifVersion
x64\Release\dgif_lib.obj DGifGetImageDesc
x64\Release\dgif_lib.obj DGifGetImageHeader
x64\Release\dgif_lib.obj DGifGetLZCodes
x64\Release\dgif_lib.obj DGifGetLine
x64\Release\dgif_lib.obj DGifGetPixel
x64\Release\dgif_lib.obj DGifGetRecordType
x64\Release\dgif_lib.obj DGifGetScreenDesc
x64\Release\dgif_lib.obj DGifOpen
x64\Release\dgif_lib.obj DGifOpenFileHandle
x64\Release\dgif_lib.obj DGifOpenFileName
x64\Release\dgif_lib.obj DGifSavedExtensionToGCB
x64\Release\dgif_lib.obj DGifSlurp
;
; Definition file of libgif-7.dll
; Automatic generated by gendef
; written by Kai Tietz 2008
;
LIBRARY "libgif-7.dll"
EXPORTS
DGifCloseFile
DGifExtensionToGCB
DGifGetCode
DGifGetCodeNext
DGifGetExtension
DGifGetExtensionNext
DGifGetImageDesc
DGifGetLZCodes
DGifGetLine
DGifGetPixel
DGifGetRecordType
DGifGetScreenDesc
DGifOpen
DGifOpenFileHandle
DGifOpenFileName
DGifSavedExtensionToGCB
DGifSlurp
EGifCloseFile
EGifGCBToExtension
EGifGCBToSavedExtension
EGifGetGifVersion
EGifOpen
EGifOpenFileHandle
EGifOpenFileName
EGifPutCode
EGifPutCodeNext
EGifPutComment
EGifPutExtension
EGifPutExtensionBlock
EGifPutExtensionLeader
EGifPutExtensionTrailer
EGifPutImageDesc
EGifPutLine
EGifPutPixel
EGifPutScreenDesc
EGifSetGifVersion
EGifSpew
FreeLastSavedImage
GifAddExtensionBlock
GifApplyTranslation
GifAsciiTable8x8 DATA
GifBitSize
GifDrawBox
GifDrawBoxedText8x8
GifDrawRectangle
GifDrawText8x8
GifErrorString
GifFreeExtensions
GifFreeMapObject
GifFreeSavedImages
GifMakeMapObject
GifMakeSavedImage
GifQuantizeBuffer
GifUnionColorMap
_ClearHashTable
_ExistsHashTable
_InitHashTable
_InsertHashTable
reallocarray
What would be the added value compared to the built-in Gdi+ functions?
Quote from: jj2007 on January 29, 2021, 11:36:56 PM
What would be the added value compared to the built-in Gdi+ functions?
Hi jj2007,
it seems to me nothing special, just the convenience in the set of api :rolleyes: