GIFObject (windows only)
GIFObject (windows only)
This is a small objectclass to use GIFs, not the same as AnimGIFGadget.
This code make it possible, for example, to save the frames from the gif,
with PB-Functions.
Description GIFObject
As the first we must provide the object, this goes in such a way:
Define.GIFObject myvariable = NewGIFObject()
Now we can use the methods of the Objects.
The following methods are available:
LoadImage()
Syntax:
Result = myvariable\LoadImage.i(ID, FileName.s)
Parameters:
ID = Specifies the number by which to identify the loaded image. #PB_Any
can be specified to autogenerate this number.
FileName = Specifies the name of the file to load. If the filename does not
include a full path, it is interpreted relative to the current directory.
Return value:
Returns nonzero if the image was loaded successfully and zero if the image
could not be loaded. If #PB_Any was specified as the ID parameter then
the autogenerated number is returned on success.
CatchImage()
Syntax:
Result = myvariable\CatchImage.i(ID, *Memory, Size.l)
Parameters:
ID = Specifies the number by which to identify the loaded image. #PB_Any can
be specified to autogenerate this number.
*Memory = Specifies the memory address from which to load the image.
Size = Specifies the size of the image in bytes.
Return value:
Returns nonzero if the image was loaded successfully and zero if the image could
not be loaded. If #PB_Any was specified as the #Image parameter then the
autogenerated number is returned on success.
FreeImage()
Syntax:
myvariable\FreeImage(ID = #PB_Any)
Parameters:
ID (optional) = Free the specified image and release its associated memory. If no ID is given, everything become with this Lib to generated pictures released, however, not with the Function GetFrame () provided!
Return value:
This method has no return value.
GetFrame()
Syntax:
Result = myvariable\GetFrame(ID, Number.l)
Parameters:
ID = The ID, used by LoadImage() or CatchImage(), or the result with information from #PB_Any.
Number = The number of the Frame, the counting begins with 0 and ends with CountFrames() - 1
Return value:
image (not the ImageID!)
CountFrames()
Syntax:
Result = myvariable\CountFrames(ID)
Parameters:
ID = The ID, used by LoadImage() or CatchImage() or the result with information from #PB_Any.
Return value:
Count of Frames.
GetDelayTime()
Syntax:
Result = myvariable\GetDelayTime(ID, Number.l = 0)
Parameters:
ID = The ID, used by LoadImage() or CatchImage() or the result with information from #PB_Any.
Number (optional) = The number of Frames. (Default = Frame 0).
Return value:
Delaytime in ms
Destroy()
Syntax:
myvariable\Destroy()
Parameters:
none
Return value:
none
This method is to be called always at the end of the use of this Lib. She gives all images,
as far as do not happen yet, as well as all used memories, as well as gdiplus.dll, again freely.
With GetFrame () to provided images are not released. To release these images you can use the
PB function FreeImage().
The source is following in the next Thread.
Sorry for my bad english.
This code make it possible, for example, to save the frames from the gif,
with PB-Functions.
Description GIFObject
As the first we must provide the object, this goes in such a way:
Define.GIFObject myvariable = NewGIFObject()
Now we can use the methods of the Objects.
The following methods are available:
LoadImage()
Syntax:
Result = myvariable\LoadImage.i(ID, FileName.s)
Parameters:
ID = Specifies the number by which to identify the loaded image. #PB_Any
can be specified to autogenerate this number.
FileName = Specifies the name of the file to load. If the filename does not
include a full path, it is interpreted relative to the current directory.
Return value:
Returns nonzero if the image was loaded successfully and zero if the image
could not be loaded. If #PB_Any was specified as the ID parameter then
the autogenerated number is returned on success.
CatchImage()
Syntax:
Result = myvariable\CatchImage.i(ID, *Memory, Size.l)
Parameters:
ID = Specifies the number by which to identify the loaded image. #PB_Any can
be specified to autogenerate this number.
*Memory = Specifies the memory address from which to load the image.
Size = Specifies the size of the image in bytes.
Return value:
Returns nonzero if the image was loaded successfully and zero if the image could
not be loaded. If #PB_Any was specified as the #Image parameter then the
autogenerated number is returned on success.
FreeImage()
Syntax:
myvariable\FreeImage(ID = #PB_Any)
Parameters:
ID (optional) = Free the specified image and release its associated memory. If no ID is given, everything become with this Lib to generated pictures released, however, not with the Function GetFrame () provided!
Return value:
This method has no return value.
GetFrame()
Syntax:
Result = myvariable\GetFrame(ID, Number.l)
Parameters:
ID = The ID, used by LoadImage() or CatchImage(), or the result with information from #PB_Any.
Number = The number of the Frame, the counting begins with 0 and ends with CountFrames() - 1
Return value:
image (not the ImageID!)
CountFrames()
Syntax:
Result = myvariable\CountFrames(ID)
Parameters:
ID = The ID, used by LoadImage() or CatchImage() or the result with information from #PB_Any.
Return value:
Count of Frames.
GetDelayTime()
Syntax:
Result = myvariable\GetDelayTime(ID, Number.l = 0)
Parameters:
ID = The ID, used by LoadImage() or CatchImage() or the result with information from #PB_Any.
Number (optional) = The number of Frames. (Default = Frame 0).
Return value:
Delaytime in ms
Destroy()
Syntax:
myvariable\Destroy()
Parameters:
none
Return value:
none
This method is to be called always at the end of the use of this Lib. She gives all images,
as far as do not happen yet, as well as all used memories, as well as gdiplus.dll, again freely.
With GetFrame () to provided images are not released. To release these images you can use the
PB function FreeImage().
The source is following in the next Thread.
Sorry for my bad english.
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Re: GIFObject (windows only)
[GIFObject.pbi]
In the next thread comes a example!
Code: Select all
; Copyright (c) 2012 Thomas <ts-soft> Schulz
; Permission is hereby granted, free of charge, to any person obtaining a copy of this
; software and associated documentation files (the "Software"), to deal in the Software
; without restriction, including without limitation the rights to use, copy, modify, merge,
; publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to
; whom the Software is furnished to do so, subject to the following conditions:
; The above copyright notice and this permission notice shall be included in all copies or
; substantial portions of the Software.
; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
;==================================================================
;
; Library: GIFObject
; Author: Thomas <ts-soft> Schulz
; Date: Mrz 11, 2012
; Version: 1.2.1
; Target OS: Windows 2000 and higher
; Target Compiler: PureBasic 4.60 and later
; Requires: gdiplus.dll
;==================================================================
; History:
; 1.2, Mrz 13, 2012
; - removed backcolor
; + added support transparency
;
; 1.1
; added optional backcolor to LoadImage() and CatchImage()
CompilerIf Defined(GdiplusStartupInput, #PB_Structure) = 0
Structure GdiplusStartupInput
GdiPlusVersion.l
CompilerIf #PB_Compiler_Processor = #PB_Processor_x64 ; ALIGN next pointer to 8
PB_Alignment.b[4]
CompilerEndIf
*DebugEventCallback.DebugEventProc
SuppressBackgroundThread.i
SuppressExternalCodecs.i
EndStructure
CompilerEndIf
#PropertyTagFrameDelay = $5100
;{ Prototypes
Prototype __GdipCreateBitmapFromFile(filename.p-unicode, *bitmap)
Prototype __GdipCreateFromHDC(hdc, *graphics)
Prototype __GdipDeleteGraphics(*graphics)
Prototype __GdipDisposeImage(*image)
Prototype __GdipDrawImageI(*graphics, *image, x.l, y.l)
Prototype __GdipGetImageWidth(*image, *width)
Prototype __GdipGetImageHeight(*image, *height)
Prototype __GdipImageGetFrameCount(*image, *dimensionID.GUID, *count)
Prototype __GdipImageGetFrameDimensionsList(*image, *dimensionID.GUID, count.l)
Prototype __GdipImageSelectActiveFrame(*image, *dimensionID.GUID, frameIndex.l)
Prototype __GdipLoadImageFromStream(*stream, *bitmap)
Prototype __GdipGetPropertyItemSize(*image, propId.l, *size)
Prototype __GdipGetPropertyItem(*image, propId.l, propSize.l, *buffer)
Prototype __GdiplusShutdown(token)
Prototype __GdiplusStartup(*token, *input.GdiplusStartupInput, *output)
;}
Interface GIFObject
LoadImage.i(ID, FileName.s)
CatchImage.i(ID, *Memory, Size.l)
FreeImage(ID = #PB_Any)
GetFrame(ID, Number.l)
CountFrames(ID)
GetDelayTime(ID, Number.l = 0)
Destroy()
EndInterface
Structure GIFImageList
ID.i
bitmap.i
guid.GUID
width.l
height.l
count.l
pos.i
*mem
*mem2
EndStructure
Structure GIFClassTemplate
*vTable
; GDI Functionpointer
GdipCreateBitmapFromFile.__GdipCreateBitmapFromFile
GdipCreateFromHDC.__GdipCreateFromHDC
GdipDeleteGraphics.__GdipDeleteGraphics
GdipDisposeImage.__GdipDisposeImage
GdipDrawImageI.__GdipDrawImageI
GdipGetImageWidth.__GdipGetImageWidth
GdipGetImageHeight.__GdipGetImageHeight
GdipImageGetFrameCount.__GdipImageGetFrameCount
GdipImageGetFrameDimensionsList.__GdipImageGetFrameDimensionsList
GdipImageSelectActiveFrame.__GdipImageSelectActiveFrame
GdipLoadImageFromStream.__GdipLoadImageFromStream
GdipGetPropertyItemSize.__GdipGetPropertyItemSize
GdipGetPropertyItem.__GdipGetPropertyItem
GdiplusShutdown.__GdiplusShutdown
GdiplusStartup.__GdiplusStartup
;
hDLL.i
Token.i
;
List ImageObjects.GIFImageList()
EndStructure
Procedure.i NewGIFObject()
Protected *object.GIFClassTemplate
Protected gdpsi.GdiplusStartupInput
Protected token.i
*object = AllocateMemory(SizeOf(GIFClassTemplate))
If *object
InitializeStructure(*object, GIFClassTemplate)
With *object
\vTable = ?VTable_GIFClass
\hDLL = OpenLibrary(#PB_Any, "gdiplus.dll")
If \hDLL <> 0
\GdipCreateBitmapFromFile = GetFunction(\hDLL, "GdipCreateBitmapFromFile")
\GdipCreateFromHDC = GetFunction(\hDLL, "GdipCreateFromHDC")
\GdipDeleteGraphics = GetFunction(\hDLL, "GdipDeleteGraphics")
\GdipDisposeImage = GetFunction(\hDLL, "GdipDisposeImage")
\GdipDrawImageI = GetFunction(\hDLL, "GdipDrawImageI")
\GdipGetImageWidth = GetFunction(\hDLL, "GdipGetImageWidth")
\GdipGetImageHeight = GetFunction(\hDLL, "GdipGetImageHeight")
\GdipImageGetFrameCount = GetFunction(\hDLL, "GdipImageGetFrameCount")
\GdipImageGetFrameDimensionsList = GetFunction(\hDLL, "GdipImageGetFrameDimensionsList")
\GdipImageSelectActiveFrame = GetFunction(\hDLL, "GdipImageSelectActiveFrame")
\GdipLoadImageFromStream = GetFunction(\hDLL, "GdipLoadImageFromStream")
\GdipGetPropertyItemSize = GetFunction(\hDLL, "GdipGetPropertyItemSize")
\GdipGetPropertyItem = GetFunction(\hDLL, "GdipGetPropertyItem")
\GdiplusShutdown = GetFunction(\hDLL, "GdiplusShutdown")
\GdiplusStartup = GetFunction(\hDLL, "GdiplusStartup")
gdpsi\GdiPlusVersion = 1
\GdiplusStartup(@token, gdpsi, 0)
\Token = token
Else
ClearStructure(*object, GIFClassTemplate)
FreeMemory(*object)
*object = 0
EndIf
EndWith
EndIf
ProcedureReturn *object
EndProcedure
Procedure.i GIFClass_LoadImage(*this.GIFClassTemplate, ID, FileName.s)
Protected bitmap.i, width.l, height.l, guid.GUID, count.l, size.i
Protected image.i, hdc.i, graphics.i, *mem
With *this
AddElement(\ImageObjects())
\GdipCreateBitmapFromFile(FileName, @bitmap)
If bitmap
\ImageObjects()\bitmap = bitmap
\GdipGetImageWidth(bitmap, @width)
\ImageObjects()\width = width
\GdipGetImageHeight(bitmap, @height)
\ImageObjects()\height = height
\GdipImageGetFrameDimensionsList(bitmap, @guid, 1)
\ImageObjects()\guid = guid
\GdipImageGetFrameCount(bitmap, @guid, @count)
\ImageObjects()\count = count
If count
\GdipGetPropertyItemSize(bitmap, #PropertyTagFrameDelay, @size)
If size
*mem = AllocateMemory(size)
If *mem
\ImageObjects()\mem = *mem
\GdipGetPropertyItem(bitmap, #PropertyTagFrameDelay, size, *mem)
\ImageObjects()\pos = PeekI(*mem + 8 + SizeOf(Integer))
EndIf
EndIf
\GdipImageSelectActiveFrame(bitmap, @guid, 0)
image = CreateImage(ID, width, height, 32)
If ID = #PB_Any : ID = image : EndIf
\ImageObjects()\ID = ID
hdc = StartDrawing(ImageOutput(ID))
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0, 0, width, height, 0)
\GdipCreateFromHDC(hdc, @graphics)
DrawingMode(#PB_2DDrawing_AlphaBlend)
\GdipDrawImageI(graphics, bitmap, 0, 0)
StopDrawing()
\GdipDeleteGraphics(graphics)
ProcedureReturn image
EndIf
EndIf
EndWith
EndProcedure
Procedure.i GIFClass_CatchImage(*this.GIFClassTemplate, ID, *Memory, Size.l)
Protected bitmap.i, width.l, height.l, guid.GUID, count.l
Protected image.i, hdc.i, graphics.i, *mem
Protected *mem2 = GlobalAlloc_(#GMEM_MOVEABLE, Size)
Protected *ptr, Stream.IStream
If *mem2
*ptr = GlobalLock_(*mem2)
If *ptr
CopyMemory(*Memory, *ptr, Size)
CreateStreamOnHGlobal_(*mem2, #True, @Stream)
GlobalUnlock_(*mem2)
If Stream = 0
GlobalFree_(*mem2)
ProcedureReturn #False
EndIf
EndIf
With *this
AddElement(\ImageObjects())
\GdipLoadImageFromStream(stream, @bitmap)
stream\Release()
\ImageObjects()\mem2 = *mem2
If bitmap
\ImageObjects()\bitmap = bitmap
\GdipGetImageWidth(bitmap, @width)
\ImageObjects()\width = width
\GdipGetImageHeight(bitmap, @height)
\ImageObjects()\height = height
\GdipImageGetFrameDimensionsList(bitmap, @guid, 1)
\ImageObjects()\guid = guid
\GdipImageGetFrameCount(bitmap, @guid, @count)
\ImageObjects()\count = count
If count
\GdipGetPropertyItemSize(bitmap, #PropertyTagFrameDelay, @size)
If size
*mem = AllocateMemory(size)
If *mem
\ImageObjects()\mem = *mem
\GdipGetPropertyItem(bitmap, #PropertyTagFrameDelay, size, *mem)
\ImageObjects()\pos = PeekI(*mem + 8 + SizeOf(Integer))
EndIf
EndIf
\GdipImageSelectActiveFrame(bitmap, @guid, 0)
image = CreateImage(ID, width, height, 32)
If ID = #PB_Any : ID = image : EndIf
\ImageObjects()\ID = ID
hdc = StartDrawing(ImageOutput(ID))
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0, 0, width, height, 0)
\GdipCreateFromHDC(hdc, @graphics)
DrawingMode(#PB_2DDrawing_AlphaBlend)
\GdipDrawImageI(graphics, bitmap, 0, 0)
StopDrawing()
\GdipDeleteGraphics(graphics)
ProcedureReturn image
EndIf
EndIf
EndWith
EndIf
EndProcedure
Procedure GIFClass_FreeImage(*this.GIFClassTemplate, ID = #PB_Any)
Protected found
With *this
ForEach \ImageObjects()
If ID = #PB_Any
\GdipDisposeImage(\ImageObjects()\bitmap)
If IsImage(\ImageObjects()\ID)
FreeImage(\ImageObjects()\ID)
EndIf
If \ImageObjects()\mem
FreeMemory(\ImageObjects()\mem)
EndIf
If \ImageObjects()\mem2
GlobalFree_(\ImageObjects()\mem2)
EndIf
DeleteElement(\ImageObjects())
ElseIf \ImageObjects()\ID = ID
found = #True
\GdipDisposeImage(\ImageObjects()\bitmap)
If IsImage(ID)
FreeImage(ID)
EndIf
If \ImageObjects()\mem
FreeMemory(\ImageObjects()\mem)
EndIf
If \ImageObjects()\mem2
GlobalFree_(\ImageObjects()\mem2)
EndIf
DeleteElement(\ImageObjects())
Break
EndIf
Next
If ID <> #PB_Any And found = #False
If IsImage(ID)
FreeImage(ID)
EndIf
EndIf
EndWith
EndProcedure
Procedure GIFClass_GetFrame(*this.GIFClassTemplate, ID, Number.l)
Protected hdc.i, graphics, image
With *this
ForEach \ImageObjects()
If \ImageObjects()\ID = ID
If Number > \ImageObjects()\count - 1
ProcedureReturn 0
EndIf
\GdipImageSelectActiveFrame(\ImageObjects()\bitmap, \ImageObjects()\guid, Number)
image = CreateImage(#PB_Any, \ImageObjects()\width, \ImageObjects()\height, 32)
hdc = StartDrawing(ImageOutput(image))
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0, 0, \ImageObjects()\width, \ImageObjects()\height, 0)
\GdipCreateFromHDC(hdc, @graphics)
DrawingMode(#PB_2DDrawing_AlphaBlend)
\GdipDrawImageI(graphics, \ImageObjects()\bitmap, 0, 0)
StopDrawing()
\GdipDeleteGraphics(graphics)
ProcedureReturn image
EndIf
Next
EndWith
EndProcedure
Procedure GIFClass_CountFrames(*this.GIFClassTemplate, ID)
With *this
ForEach \ImageObjects()
If \ImageObjects()\ID = ID
ProcedureReturn \ImageObjects()\count
EndIf
Next
EndWith
EndProcedure
Procedure GIFClass_GetDelayTime(*this.GIFClassTemplate, ID, Number = 0)
With *this
ForEach \ImageObjects()
If \ImageObjects()\ID = ID
If Number > \ImageObjects()\count - 1
ProcedureReturn 0
EndIf
\GdipImageSelectActiveFrame(\ImageObjects()\bitmap, \ImageObjects()\guid, Number)
ProcedureReturn PeekL(\ImageObjects()\pos + (Number * SizeOf(Long))) * 10
EndIf
Next
EndWith
EndProcedure
Procedure GIFClass_Destroy(*this.GIFClassTemplate)
GIFClass_FreeImage(*this)
*this\GdiplusShutdown(*this\Token)
CloseLibrary(*this\hDLL)
ClearStructure(*this, GIFClassTemplate)
FreeMemory(*this)
EndProcedure
DataSection
VTable_GIFClass:
Data.i @GIFClass_LoadImage()
Data.i @GIFClass_CatchImage()
Data.i @GIFClass_FreeImage()
Data.i @GIFClass_GetFrame()
Data.i @GIFClass_CountFrames()
Data.i @GIFClass_GetDelayTime()
;
Data.i @GIFClass_Destroy()
EndDataSection
Last edited by ts-soft on Tue Mar 13, 2012 5:15 pm, edited 6 times in total.
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Re: GIFObject (windows only)
Code: Select all
EnableExplicit
XIncludeFile "GIFObject.pbi"
Enumeration ; images
#imgProgress
EndEnumeration
Enumeration ; gadgets
#gadProgress
#gadTrack
EndEnumeration
Enumeration ; windows
#frmMain
EndEnumeration
Define.GIFObject Gifobj = NewGIFObject()
Define count, i, width, height
If Gifobj
Gifobj\CatchImage(#imgProgress, ?rmtogmeh_gif_start, 4504)
width = ImageWidth(#imgProgress)
height = ImageHeight(#imgProgress)
count = Gifobj\CountFrames(#imgProgress)
Dim frames(count - 1)
For i = 0 To count - 1
frames(i) = Gifobj\GetFrame(#imgProgress, i)
Next
OpenWindow(#frmMain, #PB_Ignore, #PB_Ignore, width + 20, height + 20, "example")
ImageGadget(#gadProgress, 10, 10, width, height, ImageID(frames(0)))
TrackBarGadget(#gadTrack, width + 40, 10, 20, height, 0, count -1, #PB_TrackBar_Vertical)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
If EventGadget() = #gadTrack
SetGadgetState(#gadProgress, ImageID(frames(GetGadgetState(#gadTrack))))
EndIf
EndSelect
ForEver
Gifobj\Destroy()
EndIf
DataSection
rmtogmeh_gif_start:
; size : 4504 bytes
Data.q $002F613938464947,$FFFFFF0000910079,$00000201FE000000,$5354454E0BFF2100,$03302E3245504143
Data.q $0404F92100000001,$0000002C00FF0007,$FF02000079002F00,$9C9E011DCBA98F84,$D36F5086A38BDAB4
Data.q $9E8917E39218E071,$9ABCA2BA7B68965A,$1FF0DAFD6C6F4D35,$69F52E0CC430843B,$3213352A238E1A4D
Data.q $154CECF1F4503D1D,$D5B865D1EBACE3D8,$983B11685E1292DE,$126FDAA5AE66AB15,$313E15A7AF72A64E
Data.q $10C122C1C6971807,$B8883876D6E716C8,$73C7B90798E32378,$89A2637749B8F4B5,$67570504E9752896
Data.q $A7267A7774A8F17A,$082962A816F493B6,$2BA6697B0A18E7E4,$59A43482E8A7DA2A,$07A8A7FC7B3419C9
Data.q $26DCFD082C83FC58,$B999FD9C969A9684,$567A085D8A3D69DB,$16CB7E2A0249F914,$EAD56EBE3BCDA595
Data.q $1BDC1C036E4EFA3C,$6105F6CF6A219C8D,$5126316241594DB4,$170F3133091066AA,$FF5B33553071F376
Data.q $A248AD50B3F4C10A,$573127AAA0FEF846,$6C8873D9B8C28285,$761BE5685E91CB4D,$D4D63AFA8240CCD1
Data.q $0A72DA2F2767B118,$D53343ABA6C9E7BD,$197844270C592A15,$8A360C8E9A639DCD,$4BA374A8CCF9DCA7
Data.q $68F639BD58C1188B,$11E78CA1FF1B3ECA,$4A94F2755DB542A4,$05D6F169BBC36756,$E5DADFB84463D577
Data.q $D8B8ACA86E4A5BA5,$36B6A7AA900AD541,$5F536D0FEC258EFB,$DBADB249CD4E8B2A,$0BE55BF5CE573FC1
Data.q $1515446AC1A4BAB5,$FC9B7B2298C7A4B4,$7BF34D0848C8A81A,$57557AE1E7F7D89B,$0DA8A0E659788B54
Data.q $B2E859E935FD1E65,$57E2A6B97D3F2D59,$6BA69965AD73536F,$78D4F7167B5EA6B9,$D83EE3CF4BA08E3E
Data.q $4EA4EF6B23EC503B,$C7C16579FC7DC71C,$DCC494B34059BBE5,$85F97B1813656565,$74CBF70190571E91
Data.q $8721866F60F6ED95,$75521B684D4A2FDA,$5F4655E35D1FC600,$9E1A7D6057ED6C2C,$6422D2D21E53A295
Data.q $E34C65874D78B040,$618E6086F5F96C4C,$6108D5E559A0779D,$00984C9F19123084,$2B245932031F2368
Data.q $8736217B87989562,$17175C180A312B51,$0FA5E20C381F6476,$95A648902531DA1F,$2D9986688898D8E3
Data.q $F835274AE3D5F0BB,$7A0F1F23985316D4,$1599A9CF0E9FE16E,$821F0E681965D28F,$7DA8844E6C779085
Data.q $8A568CA39B5769CA,$00015A9A1E9293E7,$000200070504F921,$06000E006C00182C,$19081F8410020000
Data.q $ED49466B99DF0FED,$04F921000287394A,$00182C0002000705,$02000006000E006B,$8CFFED19081F8411
Data.q $EB49652B3BC1743B,$070504F921000050,$006A00182C000200,$841002000006000E,$743B8CFFED19081F
Data.q $0002CBB54AB18851,$000200070504F921,$06000E006900182C,$CA610F8411020000,$6313A90872DF0FE1
Data.q $F92100155BE7984D,$182C000200070504,$000006000E006800,$0FE1CA610F841102,$984D6313A90872DF
Data.q $0504F92100155BEF,$6700182C00020007,$1102000006000E00,$72DF0FE1CA610F84,$5BEF984D6313A908
Data.q $00070504F9210015,$0E006600182C0002,$0F84110200000600,$A90872DF0FE1CA61,$00155BEF984D6313
Data.q $000200070504F921,$06000E006500182C,$CA610F8411020000,$6313A90872DF0FE1,$F92100148F56FC5D
Data.q $182C000200070504,$000006000E006400,$8F8BB1006F8C1102,$FC95670B329451D4,$0504F9210015B6EE
Data.q $6300182C00020007,$1102000006000E00,$72DF0FE1CA610F84,$7F6EFC5D6313A908,$00070504F9210014
Data.q $0E006200182C0002,$0F84110200000600,$1D4843E30FE1CA61,$000053F756DAE909,$000200070504F921
Data.q $06000E006100182C,$CA610F8411020000,$EB0BC50872DF0FE1,$F92100005D274ADA,$182C000200070504
Data.q $000006000E006000,$0FE1CA016F841102,$AB4EB313A908725F,$0504F92100005F62,$5F00182C00020007
Data.q $1102000006000E00,$725F0FE1CA016F84,$5DE5BC4D6313A908,$00070504F9210000,$0E005E00182C0002
Data.q $6F84110200000600,$A908725F0FE1CA01,$00147F6EFC4D6313,$000200070504F921,$06000E005D00182C
Data.q $CA016F8411020000,$6313A908725F0FE1,$F92100147F6EFC4D,$182C000200070504,$000006000E005C00
Data.q $0FE1CA016F841102,$ABC56313A908725F,$0504F92100148F6F,$5B00182C00020007,$1102000006000E00
Data.q $725F0FE1CA016F84,$54EFABC56313A908,$00070504F9210015,$0E005A00182C0002,$7F8C120200000600
Data.q $4E348ADA08E8AA10,$05457AEFABA552FB,$0200070504F92100,$000E005900182C00,$016F841102000006
Data.q $13A908725F0FE1CA,$21001554EFABC563,$2C000200070504F9,$0006000E00580018,$E1CA016F84110200
Data.q $5DE9091D4843E30F,$04F92100005A275C,$00182C0002000705,$02000006000E0057,$5F0FE1CA016F8411
Data.q $EF4B61EB0BC50872,$070504F92100005A,$005600182C000200,$841102000006000E,$08725F0FE1CA016F
Data.q $005ADAAB66B313A9,$0200070504F92100,$000E005500182C00,$016F841102000006,$13A908725F0FE1CA
Data.q $2100148967ABC563,$2C000200070504F9,$0006000E00540018,$E1CA016F84110200,$C56313A908725F0F
Data.q $04F921001554EFAB,$00182C0002000705,$02000006000E0053,$5F0FE1CA016F8411,$EFABC56313A90872
Data.q $070504F921001554,$005200182C000200,$841102000006000E,$68438D0FEAB0117F,$005A4B5C6268F825
Data.q $0200070504F92100,$000E005100182C00,$117F841102000006,$F82568438D0FEAB0,$2100005A4B5C6268
Data.q $2C000200070504F9,$0006000E00500018,$7D9A018F8C110200,$5D692755539C0CB0,$04F92100005A6F5C
Data.q $00182C0002000705,$02000006000E004F,$8D0FEAB0117F8411,$4B5C6268F8256843,$070504F92100005A
Data.q $004E00182C000200,$840F02000006000E,$2B42210FEAB0117F,$21001669CB693745,$2C000200070504F9
Data.q $0006000E004D0018,$EAB0117F840F0200,$CB6B47DA08438D0F,$070504F921001515,$004C00182C000200
Data.q $841102000006000E,$68438D0FEAB0117F,$00535A9462B38825,$0200070504F92100,$000E004B00182C00
Data.q $117F841102000006,$F82568438D0FEAB0,$21000053CF0C6D68,$2C000200070504F9,$0006000E004A0018
Data.q $EAB0117F84100200,$6D68F82568438D0F,$0504F9210002A2BA,$4900182C00020007,$1002000006000E00
Data.q $438D0FEAB0117F84,$02A2BA6D68F82568,$0200070504F92100,$000E004800182C00,$117F841002000006
Data.q $F82568438D0FEAB0,$F9210002A2BA6D68,$182C000200070504,$000006000E004700,$0FEAB0117F841002
Data.q $BA6D68F82568438D,$070504F9210002A2,$004600182C000200,$8C1102000006000E,$539C0CB07D9A018F
Data.q $005A575695292755,$0200070504F92100,$000E004500182C00,$117F841002000006,$F82568438D0FEAB0
Data.q $F9210002A2BA6D68,$182C000200070504,$000006000E004400,$0FEAB0117F840F02,$14CB6937452B4221
Data.q $00070504F9210015,$0E004300182C0002,$7F840F0200000600,$DA08438D0FEAB011,$F921001515CB6B47
Data.q $182C000200070504,$000006000E004200,$0FEAB0117F841102,$9462B3882568438D,$0504F9210000535A
Data.q $4100182C00020007,$1102000006000E00,$438D0FEAB0117F84,$53CF0C6D68F82568,$00070504F9210000
Data.q $0E004000182C0002,$7F84100200000600,$2568438D0FEAB011,$210002A2BA6D68F8,$2C000200070504F9
Data.q $0006000E003F0018,$EAB0117F84100200,$6D68F82568438D0F,$0504F9210002A2BA,$3E00182C00020007
Data.q $1002000006000E00,$438D0FEAB0117F84,$02A2BA6D68F82568,$0200070504F92100,$000E003D00182C00
Data.q $117F841002000006,$F82568438D0FEAB0,$F9210002A2BA6D68,$182C000200070504,$000006000E003C00
Data.q $B07D9A018F8C1102,$5695292755539C0C,$0504F92100005A57,$3A00182C00020007,$1102000007000E00
Data.q $42210FEAB0117F84,$6AE794CB6937452B,$00070504F9210014,$0E003900182C0002,$7F840F0200000600
Data.q $DA08438D0FEAB011,$F921001515CB6B47,$182C000200070504,$000006000E003800,$0FEAB0117F841102
Data.q $9462B3882568438D,$0504F9210000535A,$3700182C00020007,$1102000006000E00,$438D0FEAB0117F84
Data.q $53CF0C6D68F82568,$00070504F9210000,$0E003600182C0002,$7F84100200000600,$2568438D0FEAB011
Data.q $210002A2BA6D68F8,$2C000200070504F9,$0006000E00350018,$EAB0117F84100200,$6D68F82568438D0F
Data.q $0504F9210002A2BA,$3400182C00020007,$1002000006000E00,$438D0FEAB0117F84,$02A2BA6D68F82568
Data.q $0200070504F92100,$000E003300182C00,$117F841002000006,$F82568438D0FEAB0,$F9210002A2BA6D68
Data.q $182C000200070504,$000006000E003200,$B07D9A018F8C1102,$5695292755539C0C,$0504F92100005A57
Data.q $3100182C00020007,$1002000006000E00,$438D0FEAB0117F84,$02A2BA6D68F82568,$0200070504F92100
Data.q $000E003000182C00,$117F840F02000006,$37452B42210FEAB0,$04F921001514CB69,$00182C0002000705
Data.q $02000006000E002F,$8D0FEAB0117F840F,$1515CB6B47DA0843,$0200070504F92100,$000E002E00182C00
Data.q $117F841102000006,$882568438D0FEAB0,$210000535A9462B3,$2C000200070504F9,$0006000E002D0018
Data.q $EAB0117F84110200,$6D68F82568438D0F,$04F921000053CF0C,$00182C0002000705,$02000006000E002C
Data.q $8D0FEAB0117F8410,$A2BA6D68F8256843,$00070504F9210002,$0E002B00182C0002,$7F84100200000600
Data.q $2568438D0FEAB011,$210002A2BA6D68F8,$2C000200070504F9,$0006000E002A0018,$EAB0117F84100200
Data.q $6D68F82568438D0F,$0504F9210002A2BA,$2900182C00020007,$1002000006000E00,$438D0FEAB0117F84
Data.q $02A2BA6D68F82568,$0200070504F92100,$000E002800182C00,$018F8C1102000006,$2755539C0CB07D9A
Data.q $2100005A57569529,$2C000200070504F9,$0006000E00270018,$EAB0117F84100200,$6D68F82568438D0F
Data.q $0504F9210002A2BA,$2600182C00020007,$1002000006000E00,$43E30FE1CA016F84,$02A2BA6569091D48
Data.q $0200070504F92100,$000E002500182C00,$016F841002000006,$0BC508725F0FE1CA,$F9210002A2DA65AB
Data.q $182C000200070504,$000006000E002400,$0FE1CA016F841102,$B796B313A908725F,$0504F92100005462
Data.q $2300182C00020007,$1102000006000E00,$725F0FE1CA016F84,$79656CB56313A908,$00070504F9210014
Data.q $0E002200182C0002,$6F84110200000600,$A908725F0FE1CA01,$00147E6FABC56313,$000200070504F921
Data.q $06000E002100182C,$CA016F8411020000,$6313A908725F0FE1,$F921001554EFABC5,$182C000200070504
Data.q $000006000E002000,$0FE1CA016F841102,$ABC56313A908725F,$0504F921001554EF,$1F00182C00020007
Data.q $1102000006000E00,$725F0FE1CA016F84,$54EFABC56313A908,$00070504F9210015,$0E001E00182C0002
Data.q $7F8C120200000600,$4E348ADA08E8AA10,$05457AEFABA552FB,$0200070504F92100,$000E001D00182C00
Data.q $016F841102000006,$13A908725F0FE1CA,$21001554EFABC563,$2C000200070504F9,$0006000E001C0018
Data.q $E1CA016F84110200,$5DE9091D4843E30F,$04F92100005A275C,$00182C0002000705,$02000006000E001B
Data.q $5F0FE1CA016F8411,$EF4B61EB0BC50872,$070504F92100005A,$001A00182C000200,$841102000006000E
Data.q $08725F0FE1CA016F,$005ADAAB66B313A9,$0200070504F92100,$000E001900182C00,$016F841102000006
Data.q $13A908725F0FE1CA,$2100148967ABC563,$2C000200070504F9,$0006000E00180018,$E1CA610F84110200
Data.q $C56313A90872DF0F,$04F921001555EFA9,$00182C0002000705,$02000006000E0017,$DF0FE1CA610F8411
Data.q $EFA9C56313A90872,$070504F921001555,$001600182C000200,$841102000006000E,$0872DF0FE1CA610F
Data.q $1555EFA9C56313A9,$0200070504F92100,$000E001500182C00,$610F841102000006,$13A90872DF0FE1CA
Data.q $21001555EFA9C563,$2C000200070504F9,$0006000E00140018,$8BB1006F8C110200,$95670B329451D48F
Data.q $04F92100155E6EFC,$00182C0002000705,$02000006000E0013,$DF0FE1CA610F8411,$6EFC5D6313A90872
Data.q $070504F92100147F,$001200182C000200,$841102000006000E,$4843E30FE1CA610F,$0053F756DAE9091D
Data.q $0200070504F92100,$000E001100182C00,$610F841102000006,$0BC50872DF0FE1CA,$2100005D274ADAEB
Data.q $2C000200070504F9,$0006000E00100018,$E1CA610F84110200,$5EB313A90872DF0F,$04F92100005F62A9
Data.q $00182C0002000705,$02000006000E000F,$8CFFED19081F8411,$A70CDCAB0851743B,$070504F92100005A
Data.q $000E00182C000200,$841102000006000E,$743B8CFFED19081F,$005ADB49DCAB0851,$0200070504F92100
Data.q $000E000D00182C00,$081F841102000006,$0851743B8CFFED19,$2100005ADB49DCAB,$2C000200070504F9
Data.q $0006000E000C0018,$ED19081F84110200,$DCAB0851743B8CFF,$04F92100005ADB49,$00182C0002000705
Data.q $02000006000E000B,$8CFFED19081F8411,$A75B95AB0851743B,$070504F92100005A,$000A00182C000200
Data.q $8C1102000006000E,$74531A8FE7B1090F,$149D56CC55E8E826,$0200070504F92100,$000E000900182C00
Data.q $018F841102000006,$46C1294316AFEDC1,$3B000054769151D7
rmtogmeh_gif_end:
EndDataSection
// edit:
Small Update:
Better exampleHistory wrote:; 1.1
; added optional backcolor to LoadImage() and CatchImage()
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

- electrochrisso
- Addict
- Posts: 989
- Joined: Mon May 14, 2007 2:13 am
- Location: Darling River
Re: GIFObject (windows only)
You are welcome
Here a small example to save all frames of a gif to png:

Here a small example to save all frames of a gif to png:
Code: Select all
EnableExplicit
UsePNGImageEncoder()
XIncludeFile "GIFObject.pbi"
Procedure GifFrames2Png(GifFile.s, OutputDir.s)
Protected.GIFObject obj = NewGIFObject()
Protected.i img, buffer, count, i, png
Protected.s File = GetFilePart(GifFile)
File = Left(File, Len(File) - Len(GetExtensionPart(File)) - 1)
If Right(OutputDir, 1) <> "\" : OutputDir + "\" : EndIf
CompilerIf #PB_Compiler_Unicode
buffer = AllocateMemory(StringByteLength(OutputDir, #PB_Ascii) + 1)
If buffer
PokeS(buffer, OutputDir, -1, #PB_Ascii)
MakeSureDirectoryPathExists_(buffer)
FreeMemory(buffer)
EndIf
CompilerElse
MakeSureDirectoryPathExists_(@OutputDir)
CompilerEndIf
If obj
img = obj\LoadImage(#PB_Any, GifFile)
If img
count = obj\CountFrames(img) - 1
For i = 0 To count
png = obj\GetFrame(img, i)
SaveImage(png, OutputDir + File + Str(i + 1) + ".png", #PB_ImagePlugin_PNG)
FreeImage(png)
Next
obj\FreeImage(img)
EndIf
obj\Destroy()
EndIf
EndProcedure
Define.s File = OpenFileRequester("Select GIF-File", "", "GIF-File (*.gif)|*.gif", 0)
If File
Define.s Dir = PathRequester("Select Outputdir", "")
If Dir
GifFrames2Png(File, Dir)
RunProgram(Dir)
EndIf
EndIf
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Re: GIFObject (windows only)
Great work !!
Is it possible to copy/paste the animated gif with your method ???
Is it possible to copy/paste the animated gif with your method ???
Sorry but, Google translate is my friend 

Re: GIFObject (windows only)
Another wonderful contribution.
Thanks
Thanks
Re: GIFObject (windows only)
you are welcome
@TO7
The clipboardfunctions in PB supports only one image (frame) to copy and paste.

@TO7
The clipboardfunctions in PB supports only one image (frame) to copy and paste.
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Re: GIFObject (windows only)
What a shame.
Maybe there could be a solution to store in memory all the images thanks to your code, and after try to recreate the GIF ???
Maybe there could be a solution to store in memory all the images thanks to your code, and after try to recreate the GIF ???
Sorry but, Google translate is my friend 

Re: GIFObject (windows only)
I have test some graficprograms and the can't copy and paste a animated gif, so i think, the windows-clipboard
doesn't support this.
I have no idea how save a new animated gif.
doesn't support this.
I have no idea how save a new animated gif.
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Re: GIFObject (windows only)
Ok thanks for your answer
it is true that it would be more able to manage GIF
So again congratulation for your work and obvioulsly the sharing
it is true that it would be more able to manage GIF
So again congratulation for your work and obvioulsly the sharing
Sorry but, Google translate is my friend 

Re: GIFObject (windows only)
Update:
And a new old example:History wrote:; 1.2, Mrz 13, 2012
; - removed backcolor
; + added support transparency
Code: Select all
EnableExplicit
XIncludeFile "GIFObject.pbi"
Define.GIFObject obj = NewGIFObject()
Define count, i, delay
If obj
obj\CatchImage(0, ?Loading2_gif_start, 7998)
count = obj\CountFrames(0) - 1
delay = obj\GetDelayTime(0)
Dim frames(count)
For i = 0 To count
frames(i) = obj\GetFrame(0, i)
Next
obj\FreeImage(0)
obj\Destroy()
OpenWindow(0, #PB_Ignore, #PB_Ignore, ImageWidth(frames(0)) + 20, ImageHeight(frames(0)) + 20, "")
ImageGadget(0, 10, 10, ImageWidth(frames(0)), ImageHeight(frames(0)), ImageID(frames(0)))
AddWindowTimer(0, 1, delay)
i = 0
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Timer
Select EventTimer()
Case 1
SetGadgetState(0, ImageID(frames(i)))
i + 1
If i > count : i = 0 : EndIf
EndSelect
EndSelect
ForEver
EndIf
DataSection
Loading2_gif_start:
; size : 7998 bytes
Data.q $00A0613938464947,$7C7E7C0000F20014,$8A8CACAAACECEAEC,$F4848684FCFEFC8C,$04F9218C8E8CF4F2
Data.q $0BFF210004000709,$455041435354454E,$0000000103302E32,$1400A0000000002C,$FEDCBA48FE030000
Data.q $CDEB38BDAB49CA30,$9E69648E2860FFBB,$2C70BEEB6CAEAA68,$364860871C219BCF,$0213D22EDCB7F3AE
Data.q $95320C47F148437D,$812350752963E4CE,$EC90020C0000A001,$43F05EB96B0DFBB6,$1D83B564CFAF2E8C
Data.q $C741BCB6F6D38F37,$00845D020E6EEFBF,$8B8A888685831002,$82928D8F8785890F,$9A84900D958A8C94
Data.q $0E8EA00B9E5D9C0C,$0FA95CA710036370,$B368B1AC77AA5EAB,$B8A6B9B5B7B0B2AE,$0CC2AF0DBFBBBDAD
Data.q $C985CAC8B1058A5A,$BDCE84CCCDCFCBB7,$D55DD3D4D1D2D6D0,$5C5C890AA263DD9B,$DFA5E598E1E404E2
Data.q $9FEDEF93EAEBE663,$73F8E9E7ECF3F0E0,$CFF3E205087F75C7,$B81188190342BF8F,$3C02160B84C16147
Data.q $08AD1380C54ED0C8,$1D8D94C9E0343018,$92C6A3D1C1B034AB,$4B6504090C901922,$26450984C65C4D96
Data.q $B3C9DCEA73389B8D,$4A1D0A83409FCFA7,$0000121AA3D1A8B4,$001300070904F921,$1400A0000000002C
Data.q $8486840402048400,$AAACDCDADC4C4A4C,$F46C6A6C343234AC,$B4B2B45C5E5CF4F2,$E6E48C8E8C141614
Data.q $548C8A8C3C3E3CE4,$343634ACAEAC5452,$62640000007C7E7C,$EC1C1A1CB4B6B464,$000000000000ECEA
Data.q $0000000000000000,$0000000000000000,$648E24E0FE050000,$BEEB6CAEAA689E69,$AE78DF6D74CF2C70
Data.q $62214315D3EF7CEF,$00506DA4C88EFCA8,$8EAD4A728B8F9F38,$BF5818A016A78A06,$900E9C2DAB735E60
Data.q $776CD5A1507082C5,$1D7872E9BD4EDD7A,$7B807C7EE7DB8F75,$2509646409268367,$27520E018F120E17
Data.q $9095269391128F8D,$9C8E949D979B2892,$989F24A5A0A38C99,$0823AF96A2ACA79E,$0496900425085B89
Data.q $BC8FBABDBB97B928,$C412C2C5C001BE27,$D1B8CCCACDC8C626,$115AB50D25C3BFC1,$E08FDE280E96A725
Data.q $DDE8E626E412E227,$EBF0EFE3EDE1DF96,$4EDAD9F4EDF2EA24,$0A5D8EF790B1F5DC,$05850681BFDCB008
Data.q $AD0985C1DD308820,$007DAD04B0A87441,$8DB498F025C8916E,$C9193228EB059712,$422942EA387D238F
Data.q $B91C7A5C13962FE5,$3042308812CBE692,$8A7CE74F88D52F85,$BF3CA2B7934A1A00,$3D56D36974409D09
Data.q $131996A631352AA1,$88A9604070380807,$EBD5CAD1BABB5BAC,$568B3586C765B004,$3B65C0F96EB21DAC
Data.q $DDE8C25D5A9604F7,$0AF80C011909834B,$100502820202EC1E,$90C7E3B1B8CC24EC,$10DF32B94C9E4B23
Data.q $1D00070904F92100,$00A0000000002C00,$8684040204840014,$2CDCDADC4C4A4C84,$6C6A6CACAAAC2C2E
Data.q $3A3C141614F4F2F4,$B45C5E5C8C8E8C3C,$E4E6E40C0E0CB4B2,$0604FCFAFC343634,$345452548C8A8C04
Data.q $7C7E7CACAEAC3432,$92943C3E3C1C1A1C,$ECB4B6B464626494,$000000000000ECEA,$8E2760FE05000000
Data.q $EB6CAEAA689E6964,$78DF6D74CF2C70BE,$818DA5FFEF7CEFAE,$0472A4C8806C30F2,$1A72064C112260C9
Data.q $7AECB384ECD80050,$0694714B166B8E6F,$2CDFBAF83118F188,$3A624750259D4108,$07051914543A7096
Data.q $83817F8482807E2A,$8D288B86888A8529,$2491969294898C87,$639D0C2319597A19,$1216A816121C250C
Data.q $AE26ACAAA9A6275C,$A7ADB5A8B328ABA9,$B724BDB8BBA5B1B4,$00A21825C4BFB6B0,$05250B58CA0B2309
Data.q $27D6D4D32805A8AF,$D2DEA9DC26DAAFD8,$E4D7D5E024E216D4,$11CA1126E5E823E6,$A801A7250FCFC923
Data.q $59FCAAFBF92812FA,$FB057F89E03037D0,$0E7E412050982C1D,$7889621081342A01,$891EE0067BD01AA2
Data.q $6192281C02050F5F,$A93C8E17B2219280,$4896492F7DCA24D2,$9DA2CF670763CCA0,$D53D70089D8FA57B
Data.q $43A2BBE78DBA0AA5,$A55003B3EA337E8F,$8893EA24E3B292E3,$164B9862F82ACF50,$35F61582095BAEC2
Data.q $0B408ACD625708D8,$231ED81DB55718AC,$F144734D0113A721,$E005090480A07131,$80BF213037FBE88A
Data.q $C56170F89C207705,$6512592C42330D8C,$048660218EF20EB8,$025D1E88E06C4E9A,$A339DC14097A8282
Data.q $66CB63A4CE808B39,$CEB40B0A05016151,$83C0DFEFB7BBCDDE,$21000847BC4E1F0B,$2C001400070904F9
Data.q $001400A000000000,$4484868404020485,$2C2E2CD4D2D44442,$6264ACAAACECEAEC,$F43C3A3C14121464
Data.q $5452548C8E8CF4F6,$7A7CB4B2B4E4E6E4,$34DCDADC0C0E0C7C,$0000001C1A1C3436,$4A4C8C8A8C040604
Data.q $F4343234D4D6D44C,$6C6A6CACAEACF4F2,$FAFC3C3E3C141614,$B45C5E5C949294FC,$0000007C7E7CB4B6
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $2C48708A40FE0600,$3A6CC972A4C88F1A,$AF5AAD4A74A8D09F,$55BF7AEDCB76ACD8,$74E8C088E1232711
Data.q $454A82407E598236,$CF7E8019231CFA00,$7A08204C80FFA828,$047A7B790D481608,$111D8B8B1D11450D
Data.q $0200920214979681,$8A43768C9B041F46,$200B1B1A470400A1,$ABB0AEACAA4A1A06,$B7B2B4B6B149AFAD
Data.q $1646C0B5B8B3B948,$43207AA6204487A6,$231605450E7BCA0E,$D7D6D3477E1623D5,$D5E048D8D6DB46D9
Data.q $E5E8D2DEE1D4DAE2,$08A18447DDE444EA,$7ACF214309CF1E45,$024019AADC064521,$341DB90523C0E030
Data.q $3C47017FC2DAD092,$291388C12050D224,$1567854869567844,$00B508A127E3DC86,$CB650236231E50D5
Data.q $E6447984A64E486B,$53A98CDE5F2695CB,$24711F3E974FE125,$9400FC91041951F2,$533C9683C02EC224
Data.q $4EAAD4E5B5100D3E,$A956EA9596B4D6A1,$A6DE645AF582595A,$1F614A5B3C1244A3,$A428CD39B9147F3F
Data.q $60A5D01F5C8BDCE1,$9606FB7BA95E2F57,$248A0F5303C8D7EB,$D61B7E33884CC653,$276FB9B26E778D59
Data.q $CCBBF3759C965E9F,$675B6437765B3194,$41409495A83E14D2,$4A021EB808A64F91,$30B0580C1A232A19
Data.q $EEEF7CBDDE6E952C,$0787B922F137FB8D,$0245E5F1961CAE2F,$8BDA8348B64083CC,$EFA623AF448A3D1A
Data.q $826460B3700C067F,$11C023DF611FB305,$2191086CA7F0F7F8,$CFDFEBF3F1688843,$A0280600FFFFBFBF
Data.q $0904F9210000411A,$0000002C00140007,$020485001400A000,$D444424484868404,$ECEAEC2C2E2CD4D2
Data.q $1214646264ACAAAC,$8CF4F6F43C3A3C14,$E4E6E45452548C8E,$0E0C7C7A7CB4B2B4,$1C343634DCDADC0C
Data.q $0406040000001C1A,$D6D44C4A4C8C8A8C,$ACF4F2F4343234D4,$1416146C6A6CACAE,$9294FCFAFC3C3E3C
Data.q $7CB4B6B45C5E5C94,$0000000000007C7E,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$FE06000000000000,$C88F1A2C48708A40,$A8D09F3A6CC972A4,$76ACD8AF5AAD4A74
Data.q $9388A2E0BF7AEDCB,$C11ADAB4E1447091,$7D0022A541203F2C,$D61467CF600C918E,$16087B0820498180
Data.q $450D047B7C7A0D48,$9782111D8C8C1D11,$491A06200B1B1A58,$A2041F4602009302,$470400A88B43778D
Data.q $499F9DB14A9E9C9A,$BABCB4B69BB8B3B5,$C723160547B7B948,$4488AD16467F1623,$7CD20E43207BAD20
Data.q $DB46CBC9C8C5450E,$C6C4E2C7E048CAC8,$E444EAE5E8DADEE1,$854706C7DC0648DD,$214309D71E4508A8
Data.q $BD9E8F322884F6D7,$D91092341DB90523,$B0D2243C46F48242,$700B18871388BC9E,$1A59AE112233E38C
Data.q $4A02FC21855AE152,$472D243263B1B228,$359647E5D3298478,$91E2E6731224DE6B,$A640F00B227F2F9E
Data.q $0D29290A46D29091,$5A1CF2560080CA02,$CCCAAF558ECD0034,$32BF5BAED1AB142A,$F0148CD522162AA3
Data.q $14A935C1244A7289,$B4511B91481C0600,$562F9678BDDE1A14,$DC782BB6001F7ABC,$A0F5683C8AE6A2C6
Data.q $B80B5884D4693448,$3BC68996C4D85D61,$BF319A6D90DDD977,$3444D1691BF9BC3B,$6E0F91580160B018
Data.q $022A14FAF0502527,$6A88CAF56ED887B4,$D60C3D6EAF7DAED6,$BC75A7137E45E0F0,$07C004ABCEE070B8
Data.q $8238F9BB0691EAC1,$0CD5E04C529F2924,$720B04CA4166F018,$F0F0A3C047BECA43,$1086432210D94FE3
Data.q $FFBFBFCFDFEBE4D9,$045380E0280600FF,$00070904F9210001,$A0000000002C0014,$8404020485001400
Data.q $D4D2D44442448486,$AAACECEAEC2C2E2C,$3C141214646264AC,$8C8E8CF4F6F43C3A,$B2B4E4E6E4545254
Data.q $DC0C0E0C7C7A7CB4,$1C1A1C343634DCDA,$8A8C040604000000,$34D4D6D44C4A4C8C,$ACAEACF4F2F43432
Data.q $3E3C1416146C6A6C,$5C949294FCFAFC3C,$7C7E7CB4B6B45C5E,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$8A40FE0600000000,$72A4C88F1A2C4870
Data.q $4A74A8D09F3A6CC9,$EDCB76ACD8AF5AAD,$70919388AAE0BF7A,$3F2CC11ADAB4E144,$918E7D0022A54120
Data.q $8180D61467CF600C,$0D4816087B082049,$1D11450D047B7C7A,$1A489782111D8C8C,$9C9A4A1A06200B1B
Data.q $1F4602009302499E,$00AC8B43778DA604,$A3B5499F9DA14704,$BF99BABCA0B69BB8,$1623C723160547B7
Data.q $B11647CAC8C6C47F,$0E43207BB1204488,$CBC9C8C5450E7CD6,$CFC7CDDEE2CEDF46,$0648E1E8E3EAE0CC
Data.q $46F523F3F106C7E0,$8609DB1E4508AC85,$F379114427B6D884,$7BC1E14E084119F2,$44C871164430890E
Data.q $9A71B638058C487A,$CDB08919931C8D11,$47F90C2ADB0A90D2,$8C663A2390114250,$126D349A4BE3D219
Data.q $1F9ECEDE1A132981,$A247267310780591,$841AD28224964601,$A91429DCB8010495,$15AA2D1E7D5698D1
Data.q $38991E935BA0D72B,$33EECC0FB210A2B4,$0C29536D824894F5,$AAF6B2B822506824,$47BCDF6F7680A59A
Data.q $76E11D6F0A1B7EF7,$359AA4507AC41E44,$2BCE70DC11B4426C,$B9921E5E89832262,$1CD46B30E6CB3BB0
Data.q $A3002C160306889A,$4EDE1F22B0F55A85,$6A04562AF600A04A,$A9D391966B1DB90F,$D77008BC2D6EFF57
Data.q $A0397C1E1EBF88A0,$3780D2358820FB00,$A98933F12490471F,$99602CDE03019AFB,$7808F7D6486E8160
Data.q $64421B29FBBDBDE4,$F3F8FBFBDBA210C8,$00FFFFBFBFCFDFEB,$0904F9210004110E,$0000002C00140007
Data.q $020485001400A000,$D444424484868404,$ECEAEC2C2E2CD4D2,$1214646264ACAAAC,$8CF4F6F43C3A3C14
Data.q $E4E6E45452548C8E,$0E0C7C7A7CB4B2B4,$1C343634DCDADC0C,$0406040000001C1A,$D6D44C4A4C8C8A8C
Data.q $ACF4F2F4343234D4,$1416146C6A6CACAE,$9294FCFAFC3C3E3C,$7CB4B6B45C5E5C94,$0000000000007C7E
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$FE06000000000000
Data.q $C88F1A2C48708A40,$A8D09F3A6CC972A4,$76ACD8AF5AAD4A74,$C45130E0BF7AEDCB,$8D3D7AB1223848C9
Data.q $801152A0901F9660,$0A33EFC00648C73E,$087C08204682816C,$0D047C7D7B0D4816,$83111D8D8D1D1145
Data.q $4A1A06200B1B1A5F,$489F9D9BA09E9C9A,$AA041F4602009402,$470400B08C43788E,$A3B948A7A2A4A6A1
Data.q $C723160546BDBF49,$CBC9C8C547801623,$89B51647CAC8C6C4,$DB0E43207CB52044,$D2E3D0D3CD450E7D
Data.q $E9E448CFE8CCD4C7,$F34806C7CE0644E6,$8645FACEF847F6F4,$90C12E00F11410B0,$990FC22884F8E010
Data.q $7117943C46F4863F,$700B1890F58690E2,$D3263B1B2336238C,$5DC09191C9638238,$130421855C01521A
Data.q $279A47E4F212284A,$C8E2A771E934926D,$6492507805D0449B,$246A44968C01A247,$998041B72D224A82
Data.q $AD1686C8A0CCC010,$76415BA3D7299596,$870D2145ABB10B0D,$AA8059C1F690A59E,$84052AEE004912A6
Data.q $DA99CF7B34521709,$236EEB75F9F77CBE,$18A75BB696D17551,$B6D1141EB5079131,$6B9C37096F909BAD
Data.q $7C898EAD33486F1C,$0CB8C5E8C859DC3E,$C3D66A97CC00B058,$BA07C8BADD78688C,$81160AFDB0281294
Data.q $769B25BAD77A43DD,$FCAE2ED757B322EC,$00094531B0E49138,$79F7840D23D24210,$8BC3D295C0526914
Data.q $16099882CE003019,$E248008F9DA48F00,$0C864421B287CBE3,$FFBFBFCFDFCDC421,$046180E0280600FF
Data.q $00070904F9210001,$A0000000002C0014,$8404020485001400,$D4D2D44442448486,$AAACECEAEC2C2E2C
Data.q $3C141214646264AC,$8C8E8CF4F6F43C3A,$B2B4E4E6E4545254,$DC0C0E0C7C7A7CB4,$1C1A1C343634DCDA
Data.q $8A8C040604000000,$34D4D6D44C4A4C8C,$ACAEACF4F2F43432,$3E3C1416146C6A6C,$5C949294FCFAFC3C
Data.q $7C7E7CB4B6B45C5E,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$8A40FE0600000000,$72A4C88F1A2C4870,$4A74A8D09F3A6CC9,$EDCB76ACD8AF5AAD
Data.q $48C9C45530E0BF7A,$96608D3D7AB12238,$C73E801152A0901F,$816C0A33EFC00648,$4816087C08204682
Data.q $11450D047C7D7B0D,$1A4F83111D8D8D1D,$9C9A4A1A06200B1B,$A6A1499F9D9BA09E,$041F460200940249
Data.q $0400B38C43788EAD,$BC48BDA5A8A3A947,$1623C723160547A7,$C8C548CAC8C6C480,$1644D4CED146CBC9
Data.q $43207CB8204489B8,$CFC7D6450E7DDF0E,$44D8E9CDD5EAD2CC,$F6F4F34806C7D206,$FCC8FC46FAD2F847
Data.q $E40F11410B343111,$22884F8E41090C12,$3CA04237A3DDEB00,$238C700B1887168A,$721243263B1B2337
Data.q $121C7E4526924784,$1855C81521A5DC81,$1E4F252284A1B082,$2B94CADF677239C9,$8ECA24C0F00B21B3
Data.q $51297499351C0345,$020DF989125C91A3,$150A450A6E0086CD,$27DD2AB93EA6D0E4,$FC4ECD002146688D
Data.q $B6096707DA42967A,$1814AD3901244AB2,$6DA45AED91787C36,$8DB9DDB4F68DB6DF,$10DE389C21130D45
Data.q $88A0F5C03C8ED3C6,$E1B86B8C84E16FB7,$02163B0AEBC8D330,$00582C060D113159,$B355AD61EAF52BB6
Data.q $EC1F226C365A8236,$045C2C48A0A04A52,$D76D174DF5910F7A,$6DF90A0D7ED48BB3,$48D6308410025C4C
Data.q $F0549A451E8DE203,$B3800C0662EFF425,$EF6123C2058266A0,$6CA1F0F7F8120023,$F3F1730843219108
Data.q $00FFFFBFBFCFDFEB,$04F9210010451806,$00002C0014000709,$0485001400A00000,$4442448486840402
Data.q $EAEC2C2E2CD4D2D4,$14646264ACAAACEC,$F4F6F43C3A3C1412,$E6E45452548C8E8C,$0C7C7A7CB4B2B4E4
Data.q $343634DCDADC0C0E,$06040000001C1A1C,$D44C4A4C8C8A8C04,$F4F2F4343234D4D6,$16146C6A6CACAEAC
Data.q $94FCFAFC3C3E3C14,$B4B6B45C5E5C9492,$00000000007C7E7C,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$0000000000000000,$0600000000000000,$8F1A2C48708A40FE,$D09F3A6CC972A4C8
Data.q $ACD8AF5AAD4A74A8,$58B0E0BF7AEDCB76,$CD78D11C2464E228,$A950480FCB304686,$FBE80324639F4008
Data.q $08204383826D0519,$7D7E7C0D4816087D,$1D8E8E1D11450D04,$1A06200B1B1A8211,$9F9D9BA09E9C9A4A
Data.q $0247A7A2A4A6A149,$8FB0041F46020095,$A9470400B68D4379,$23160547C0A5A8A3,$CAC8C6C4811623C7
Data.q $CED146CBC9C8C548,$BB1646CFC7D645D4,$0E43207DBB20448A,$44D8DBCDD90E7EE3,$F206C7D20648D3DA
Data.q $46FAF4F347F623F4,$E04C880115FCD2FC,$2E80F11410B64390,$881884FAE81090C1,$0B1890F58210E0CF
Data.q $8638236EB8238C70,$36458FC8E471A64C,$112349E544792476,$21855D01521A61D0,$E263D269484A230C
Data.q $20F00B225B3E9149,$990D1C03458EC964,$25429142A3512974,$41C735214CDC7312,$9EEC224EC01119C0
Data.q $0FA1C52A74CA8D2A,$B6052D5448210A2C,$422D570B75A1EF69,$0295F74024895B58,$D48B95D4891388C4
Data.q $9A2C6DAADCA7B46D,$63C716EFC6D95D78,$141EBB07909DD8F6,$371173909CAE3711,$A5C661C8596C4638
Data.q $5F30C2C160306885,$91B5FADD82B75DAC,$C87B6D8EDF67B5D5,$6B4228281295BD87,$B5EB8D6A43E18117
Data.q $174909BADE28373B,$281A46B184210012,$A75784A512490477,$39059C406032FF8B,$011FBB692E402C13
Data.q $884364DF9FCBC691,$BFBFCFA3A842190C,$F480E0280600FFFF,$070904F921000105,$000000002C001400
Data.q $04020485001400A0,$D2D4444244848684,$ACECEAEC2C2E2CD4,$141214646264ACAA,$8E8CF4F6F43C3A3C
Data.q $B4E4E6E45452548C,$0C0E0C7C7A7CB4B2,$1A1C343634DCDADC,$8C0406040000001C,$D4D6D44C4A4C8C8A
Data.q $AEACF4F2F4343234,$3C1416146C6A6CAC,$949294FCFAFC3C3E,$7E7CB4B6B45C5E5C,$000000000000007C
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$40FE060000000000
Data.q $A4C88F1A2C48708A,$74A8D09F3A6CC972,$CB76ACD8AF5AAD4A,$E22A58B0E0BF7AED,$4686CD78D11C2464
Data.q $4008A950480FCB30,$0519FBE80324639F,$087D08204383826D,$0D047D7E7C0D4816,$57111D8E8E1D1145
Data.q $9A4A1A06200B1B1A,$A1499F9D9BA09E9C,$48A3A948A7A2A4A6,$B3041F4602009502,$470400B98D43798F
Data.q $23C723160546ADAF,$C4CBC9C8C5478116,$45D0D3CD48CAC8C6,$43D8DBD2CCD4C7D6,$207DBE20448ABE16
Data.q $CFDED90E7EE70E43,$23F4F206C7CE0648,$CEFC46FAF4F347F6,$8211204C880115FC,$0788A085CA1C8EF5
Data.q $C427D76084860976,$8C70088DC3067C40,$864C6E38C6233923,$FC8E4C4792476424,$1A572392C7A54458
Data.q $2AEC0A90D30EC089,$98CBDF425148790C,$CC2360F00B22532F,$297498DD1C03458E,$B43905429142A351
Data.q $B0839E70449AA4A9,$553DBC449F002293,$9E08428CD119CFBA,$DC0FB5052D1557BD,$5C5F42AE366B95C2
Data.q $8A44C29607602489,$B729ECDB75D60F16,$1DF87C4B75E34C68,$444C6D170A437063,$62283D7C0F22E2B2
Data.q $706E28EB213A5CEE,$582C060D10F2186C,$504661EAF52AE580,$B6D8ED35CC1D66AB,$BD87C91AFD911761
Data.q $8117CB7228281295,$B67B86039D7043E1,$81085804A3D0426E,$4492411DCA0691AC,$180CC1E0E8CDA189
Data.q $4B900B04CF016710,$E3F0F0A44047EECA,$EE1086432210D937,$FFFFBFBFCFDFEBE4,$F921001046080600
Data.q $002C001400070904,$85001400A0000000,$4244848684040204,$EC2C2E2CD4D2D444,$646264ACAAACECEA
Data.q $F6F43C3A3C141214,$E45452548C8E8CF4,$7C7A7CB4B2B4E4E6,$3634DCDADC0C0E0C,$040000001C1A1C34
Data.q $4C4A4C8C8A8C0406,$F2F4343234D4D6D4,$146C6A6CACAEACF4,$FCFAFC3C3E3C1416,$B6B45C5E5C949294
Data.q $000000007C7E7CB4,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$1A2C48708A40FE06,$9F3A6CC972A4C88F,$D8AF5AAD4A74A8D0,$B0E0BF7AEDCB76AC
Data.q $78D11C2464E22C58,$50480FCB304686CD,$E80324639F4008A9,$204383826D0519FB,$7E7C0D4816087D08
Data.q $8E8E1D11450D047D,$06200B1B1A47111D,$9D9BA09E9C9A4A1A,$48A7A2A4A6A1499F,$950247B0A5A8A3A9
Data.q $798FB6041F460200,$1605460400BC8D43,$C8C547811623C723,$CD48CAC8C6C4CBC9,$D2CCD4C7D645D0D3
Data.q $C11647CFDA44D8DB,$0E43207DC120448A,$06C7CE06450E7EEA,$FACEF847F6F4F348,$4237A3C9FCC8FC46
Data.q $283411EEF5801120,$4BBC3C45042F10E4,$188A213EBBC42430,$3B1B2339E38C700B,$2692478472124326
Data.q $224AE53298D47E45,$844893296B924F25,$8861577854869877,$607C7658128BC4E2,$30068F33A2D0E512
Data.q $82914DA4D2E8926A,$8752AAD329C01644,$10754EC8539754DC,$AAB3A0F410045E7C,$83EA90AB4400850C
Data.q $AE143B6DBED614B4,$2B68711AE767BB5C,$78B052CAEF04912C,$8B45B9448DB86331,$8318DD71E21B38AA
Data.q $AB92C3E36B0CD21B,$4507B041E42CBE3D,$0DC5DDC42763A9D2,$A6566160B0183446,$353AED66BD5BADD5
Data.q $7B6D96D35445DAEC,$5C007C87BCDBA837,$381182BA22828129,$4908BE023A97643E,$1A46A78421C0130F
Data.q $5D87A51249047738,$059C406032FF8BA7,$1FBB692E602C133F,$4364DF9FCBC69101,$BFCFA3C442190C88
Data.q $80E0280600FFFFBF,$0904F92100010450,$0000002C000E0007,$020484001400A000,$44D4D2D484868404
Data.q $2C2E2CECEAEC4442,$0E0CF4F6F4ACAAAC,$3CE4E6E48C8E8C0C,$7C7A7CDCDADC3C3A,$8A8C040604000000
Data.q $34F4F2F4D4D6D48C,$141214FCFAFC3432,$7E7C3C3E3C949294,$000000000000007C,$0000000000000000
Data.q $FE05000000000000,$AA689E69648E23A0,$74CF2C70BEEB6CAE,$FFEF7CEFAE78DF6D,$8C851A2C4870A0C0
Data.q $0B031E3C19628AC8,$A000152CC6AD48E5,$A0A030DA26294102,$3AA2418B090C4940,$CF729D9AB46DD7A7
Data.q $F5F3AF0E59BA6FE3,$035A6203277D7627,$2553056186051426,$2804101893181004,$9694992797959491
Data.q $A0939E269C9F9298,$A19BAA90A4A7A29D,$245D5A8C1025A89A,$011806261661B516,$18BFC0BE2806C093
Data.q $C7C7C4C8C1C527C3,$CAD4C6CEC2CFBDC9,$B55925DAD6D8CDD3,$AE260B5ABA172515,$27E99AEA95E828A7
Data.q $F2F4F0ECEEE7B7EB,$E40C22F8EEEDF7B3,$0981F00078901800,$80308142FC1ABF63,$A2785C39290C00C2
Data.q $A894562EC188C3E1,$1C82331E8A4720F1,$C9A60411C09C8FF1,$C512B461D1369021,$9A4266224978361E
Data.q $08A71326ACBA6C23,$C4D3BA14DE79339D,$A138002C492B4637,$4A8C655AB2872894,$A0369F55565413C2
Data.q $72B55DAC56EAC23A,$1D60B283AC75E115,$BC722E44A0D5D034,$0320506100819C4C,$DED0175BC5CAED74
Data.q $70071BEDCC4B7EBC,$D4B0A09F0C7EC261,$002AE914250382D0,$437C0225CBE58AD9,$60C886458284F100
Data.q $C6092580805A4D1E,$B0D7E932A0905801,$DBEDB6BB4D9ECB63,$F921000108B373B8,$002C000B00070904
Data.q $84001400A0000000,$D2D4848684040204,$F4444244ECEAECD4,$3C3E3CACAAACF4F6,$7A7CDCDADC8C8E8C
Data.q $8C1412140000007C,$F4F2F4D4D6D48C8A,$00007C7E7CFCFAFC,$0000000000000000,$0000000000000000
Data.q $0000000000000000,$0000000000000000,$0000000000000000,$9E69648E22E0FE05,$2C70BEEB6CAEAA68
Data.q $7CEFAE78DF6D74CF,$1A2C4870A0C0FFEF,$11066CC90384AB8F,$080C3D50D180000C,$6BA9B96AC561E184
Data.q $596FE251831DDB76,$44FBF5E6DB92F61D,$0911A0D40401DA90,$807E7C7A030D2244,$8A83817F7D7B2782
Data.q $878B84888C858D86,$9095982596918926,$06265577770D269D,$A9A8A6280611A77F,$B2AAA8AC27AEADAB
Data.q $25B8ADAFB7A5B5B0,$22C17FBF24BDA7B3,$A48A94270C52A251,$28D1CC25CE7E8EA0,$D2DACBD8D0D680D4
Data.q $D585D9E023DED724,$01ADCF0977C80925,$F4F0DCEEA8EFEDD9,$F9F6F7ECF3A7F1F2,$65274BA046FA7FF8
Data.q $262828020A802F9D,$4C38170C85429582,$50FAB68AC3D770B8,$3D1F8DC5A211388C,$10063218F0C8BC66
Data.q $C2254928D1F12E73,$112249842A569B96,$C239A02A65354D4B,$E114F2753D9C4CE6,$202A8F42A2502773
Data.q $9CE60D06818D00A8,$CF51AA09AA5502B8,$57AD554BB59A7D4C,$B2892C75812D5AB9,$01C2022B4D8AC960
Data.q $05974B993AD80764,$B759480418C70084,$4C1DFC040216DFAF,$5E2B1388C3E1B0B8
Data.b $CC,$D8,$70,$08,$00,$3B
Loading2_gif_end:
EndDataSection
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Re: GIFObject (windows only)
Your second posting, of the code, is missing the code.

ts-soft wrote:[GIFObject.pbi]
Code: Select all
EnableExplicit XIncludeFile "GIFObject.pbi ... "
Re: GIFObject (windows only)


fixed, thanks for the info.
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.

Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
