Short: Picture mosaic creator Author: Timm S. Müller Uploader: Timm S Müller (timm mueller darmstadt netsurf de) Type: gfx/misc Version: 0.0.1 Requires: os3.0 (v39), 68020 Architecture: m68k-amigaos flickwerk documentation introduction ------------------- flickwerk is a picture mosaic generator. it creates an approximation of a reference picture by composing it from a large number of small source pictures. legal status ------------------- © by TEK neoscientists. freeware. requirements ------------------- - os3.0 (v39) - 68020 - guigfx.library v15 - render.library v29 recommended: - fast CPU - 24bit datatypes installed and properly working - a large number of pictures warning ------------------- this software will overwrite the filecomments of all source pictures specified. this behavior cannot be disabled. if you don't want to lose your source pictures' filecomments, you must copy these picures to another location first. usage ------------------- flickwerk is a shell command. template: flickwerk WITH=S0URCEFILES/A/M, FR0M=REFFILE/A, T0=0UTFILE/A, UPDATE/S, USEKEYS/S, X=XSEGMENTS/N, Y=YSEGMENTS/N, W=PARTWIDTH/N, H=PARTHEIGHT/N, FX=ALLOWFLIPX/S, FY=ALLOWFLIPY/S WITH=SOURCEFILES/A/M any number of files, directories, volumes. pattern matching is supported. directories will be scanned recursively. warning: any picture encountered will receive a new filecomment without further notice! FROM=REFFILE/A reference picture to be approximated. TO=OUTFILE/A filename of the picture to be generated. this picture will be saved in PPM format. UPDATE/S recalculate all keys, no matter if valid keys were encountered. USEKEYS/S do not generate new keys, only use pictures with already existing keys. X=XSEGMENTS/N number of mosaic parts to compose the picture from (horizontally). defaults to 20. Y=YSEGMENTS/N number of mosaic parts to compose the picture from (vertically). defaults to 20. W=PARTWIDTH/N width of a single mosaic part. default: 40 H=PARTHEIGHT/N height of a single mosaic part. default: 30 FX=ALLOWFLIPX/S allow horizontal mirroring. note: this option will double the calculation time. FY=ALLOWFLIPY/S allow vertical mirroring. note: this option will double the calculation time. how it works ------------------- 1. key-list creation the supplied directories will be scanned for valid pictures. any newly encountered picture will be loaded and reduced to a 360 bit key. if not already present, the key will encoded to an ascii string and written to the picture's filecomment. (valid filecomments will be simply decoded back to keys.) 2. selection after building the list of keys, the reference picture will be loaded and decomposed to the specified number of mosaic segments (by default 20x20). each segment will be reduced to a 360 bit reference key. each reference key will be compared against all keys in the source list. 3. composition the best matching pictures will be loaded, scaled, and inserted to their respective locations in the resulting picture. this picture is finally saved in PPM format. notes ---------------------------------- - it may take many hours when you apply flickwerk to a large number of source pictures the first time. this depends on the number of pictures, their sizes, formats, the datatypes used, and the general system performance. further usage of the same source material will be much faster. - it's a good idea to reduce the task priority of the shell process running flickwerk. use e.g. changetaskpri -3. - the source pictures will be cropped to areas with differing pixels. this will cut off e.g. black borders. - you should take care of the reference picture's aspect ratio. the default settings apply to an aspect ratio of 4:3. different aspect ratios require appropriate settings for PARTWIDTH/PARTHEIGHT or XSEGMENTS/YSEGMENTS. how to obtain good looking results ---------------------------------- - use a simple and contrastful image as the reference picture, e.g. a face, a logo. - allow horizontal and vertical mirroring of the source pictures, i.e. specify the options FX and FY. - the more source pictures you specify, the better the results you get. 'several thousands' is a good measure. - use heterogenous, contrastful source pictures. do not include workbench patterns and pale stuff alike. - use larger numbers for XSEGMENTS and YSEGMENTS. - the segments are currently not scaled with interpolation. workaround: specify larger mosaic parts (PARTWIDTH/PARTHEIGHT), and scale down the output picture with an image processing software. author ------------------- bifat / TEK neoscientists timm.mueller@darmstadt.netsurf.de