An fSpy project file consists of the following parts in the following order, where uint32 is an unsigned 4 byte little endian integer:
-
file_id- 4 xuint80x66,0x73,0x70,0x79(f,s,p,yin ASCII) -
project_file_version-uint321 -
state_size-uint32The size in bytes of the project state JSON data
-
image_size-uint32The size in bytes of the project image data. May be 0.
-
Project state data
A
state_sizebyte JSON string describing the project state -
Image data
image_sizebytes of binary image data.
The project state data describes the state of the entire fSpy project. Camera parameters are stored under the cameraParameters attribute. Note that the camera parameters can be null for example if the vanishing points are invalid.
The image data is a binary blob of image data. The fSpy code is not aware of the format of the data. As long as Electron can load it, it's considered valid.