Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Options ¶
type Options struct { // Page reference to a page object, that contains dimensions and margins Page Page // Rows the number of rows of frames to composite on one page Rows int // Cols the number of columns of frames to composite on one page Cols int // BGColor the background color to use for parts of the page not covered by a frame, black|white BGColor string // InputDir the directory containing all of the individual frames, it is assumed nothing // but frame images are in this directory InputDir string // OutputDir the directory where the final composite images will be written to OutputDir string // Line1Text the text to show in the cover page, the first line of the title Line1Text string // Line2Text the text to show in the cover page, the second line of the title Line2Text string // Identifier a string printed in the margin of each page to help identify the frames Identifier string // FontBytes bytes read in from a ttf file for the font to use on the front cover FontBytes []byte // ReversePages if true we print the last page first, useful if you are printing in order, // so you don't have to manually reverse the pages before cutting them ReversePages bool // ReverseFrames if true we print the last frame first, useful if you want the flip book to flip // from back to front, which can be easier to watch sometimes ReverseFrames bool // Cover if true a cover image is rendered Cover bool // GIF if true an animated GIF is generated from the individual frames GIF bool // SmallFrames if true half size versions of each frame are created in the output dir SmallFrames bool // Effect is the name of an image processing effect to apply to each frame, values are 'oil' Effect string // VerLog a logger that will receive verbose information VerLog *log.Logger }
Options allows callers to define all of the composition options
type Page ¶
type Page struct { // Width of the page in inches Width float32 // Height of the page in inches Height float32 // MarginTop size of top margin in inches MarginTop float32 // MarginRight size of right margin in inches MarginRight float32 // MarginBottom size of bottom margin in inches MarginBottom float32 // MarginLeft size of left margin in inches MarginLeft float32 // DPI number of dots per inch e.g. 300 DPI int }
Page defines all of the parameters of a single page, that can hold one or more frames
type RenderInfo ¶
type RenderInfo struct { // NFrames the number of frames in the flip NFrames int // FrameAR the aspect ratio of the final frames FrameAR float64 }
RenderInfo contains metadata about the completed job
func To4x6x3 ¶
func To4x6x3(opts Options) (RenderInfo, error)
To4x6x3 composites the source images to a 6x4 format, with 3 frames per image. Each frame will get 4x2 in dimension within the 6x4 image.
Note that the composite images are printed with maximum assembly efficiency in mind, so the images are interlaced so that you can stack all the composite images and make just two cuts to then assemble the final flip book.
So for example given input frames: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 we first discard frames 12 + 13 since we want an even multiple of 3 (3 frames per sheet) then we print in the following format
a b c d
| 0 | 1 | 2 | 3 | | 4 | 5 | 6 | 7 | | 8 | 9 | 10 | 11 |
where 0,4,8 are printed on one page, 1,5,9 on another etc. This way you can simply stack sheets a,b,c,d on top of one another, make two cuts and then put the stack together to assemble your flip book.
func ToLetter ¶
func ToLetter(opts Options) (RenderInfo, error)
ToLetter renders the frames on a letter page, 10 frames per page