Kai Schreiber

Autor | Neurowissenschaftler | Sänger

Longline Tool

Mar 5 2005, 1.0.4. build 11

This is the manual for a Windows based application to compose long line mosaics from the Long Line group pool over at Flickr.

This tool maintains a local database of all the available mosaic tiles and allows the user to flexibly select which ones to use in the design of a new mosaic.

Database maintenance

The tool will connect to flickr, either automatically at startup, or at a time specified by the user, to download new tiles. This can be done in three different modes:
  • Synchronizing with the long line group pool
  • Synchronizing with all photos tagges with longline
  • Synchronizing with a specific user's photos tagged with longline
The tool will keep track of which images are in the group pool. It will download three image sizes, image tags and the image license for new entries.

Because of the way the FlickrAPI works, tag and license information will not normally be updated on synch operations. If you think licensing or tagging information on pictures in your database has changed, you can manually perform an update. You can also set this to be done automatically on each synch. However, since updating normally is done in a few API calls, but requires one seperate call for every picture when updating metainformation, this will result in synch operations being much slower. Don't do it.

If any of the above synch operations result in images being included that are not really long line tiles, you can remove them from your database by pressing the 'Rem' button underneath the preview window. On the form that will pop up you can also choose to include the removed image in a blacklist, which means that it will not be downloaded again on the next synch operation.

Tiles View

In Tiles View, the preview and main view window are showing the same tile, with the preview window also showing the connection information read from the tags as red bars and additional information about the tile's usability in the mosaic as icons in the top left corner. The usability icons stop use of a specific tile in the making of a mosaic only if at least one of them is drawn in red.

Individual tiles can be put on an exclusion list by pressing the X button below the preview window. This will cause the leftmost icon to appear. To toggle whether the exclusion list is taken into account upon mosaic design, go to the Options form.

The second usability icon is present when the tile is not a member of the Long Line group pool. Whether or not this prohibits the tile from being used in a mosaic can once again be specified in the options.

The third usability icon indicates that the tile is either not licensed at all or has a NoDerivative cluase in the CC license. Once again, the Options form is the place to set whether this is of any consequence for mosaic creation.

The program will display a warning if a tile does not have the proper tag to denote its type. Any member of the group can add a tag to any tile in the group pool using the Tag buttin. This requires user authentication data to be entered on the options form.

The left and right arrow buttons flip through the tiles one by one.

Double clicking on the small tile preview opens the tile's page on Flickr in your browser.

Select View

To navigate the tile database, go to Select View. Tiles are displayed in pages of 49, with each tile showing connection and usability information both in the main and preview window. Click on a tile in the main window to select it.

The left and right arrow buttons flip between pages.

Selecting a type button in the bottom left while in Select View will show only tiles of that type.

By using the button with the grid pattern, the display can be further restricted to only show tiles that are currently usable. This function can be used to only show the group pool, only show tiles of a specific user, only show licensed tiles, or any combination of these.

Mosaic creation

Select Make New from the Mosaic menu to create a new mosaic, based on the settings in the options form. These include width and height of the grid to be used, whether or not each tile can be used multiple times, whether or not multiple lines should be created and which usability restrictions to consider.

Used tiles can be restricted to:

  • only those present in the group pool
  • only those by a specific user
  • only those not on the exclusion list
  • only those with a license allowing derivative work
  • any combination of individual tile types

Or any combination thereof.

You can also specify that end pieces should be avoided as much as possible, that each user has to have a minimum number of tiles on the mosaic, that each user can have a maximum number of tiles, and that each tile should be used only once, if possible.

Finally you can design the mosaic for match with a target image. This match can be done based on the target image's color, luminance or saturation pattern. You can specify the tolerance for tile placement in percent of the maximum possible difference, and the number of best fits to randomly choose from if none of the available tiles fall within the tolerance.

Color target images can be in bmp of jpg format. They will be remembered across sessions, unless they get erased from disk.

Call Mosaic|Make Empty to create an empty grid for use with the design tools. Call Mosaic|Fill Current to try and fill up empty spaces left by the previous operation. Finally, you can call Mosaic|Repopulate to maintain the geometric pattern of the mosaic, while using different tiles to fill it.

Pattern design

Using the buttons in the bottom left, you can exchange any tile against one still available for use, based on your settings. Buttons for unavailable tile types will become disabled. Just select the type and click anywhere in the mosaic to place the tile. If the tile present has the same type as the one you are trying to place, the system will cycle through the available tiles of this type in sequence.

If you switch to Pattern View, you will get a much clearer idea of the mosaics design. You can change tiles here, too. Switch back to Mosaic View to see the photographs.

Right clicking on a tile will remove it. Placing a tile in the boundary area will increase the size of the mosaic in that direction by one. So you can grow them like an old man grows a beard.

The switch tool allows you to have two tiles trade places.

The retouch tool changes the tile in a grid position, while leaving it's type intact. The tool will cycle through all available tiles in order.

The draw tool allows you to easily create continuous lines. Just hold down the left mouse button and move the mouse to add a line to the mosaic.

Saving mosaics

There are three options for saving a mosaic:

  • Save the jpg. When saving as a bitmap, you can specify the size of individual tiles in pixels. Keep in mind that the maximum size stored is 500x500 and that large files might require more memory than can be allocated. You can also save the mosaic broken up into parts. To do this add the number of parts in the horizontal and vertical after the pixel size of the tile, i.e. type '75[3x4]' if you want individual tiles to be 75 pixels and the mosaic broken up into 12 parts, 3 horizontally and 4 vertically.
  • Save the mosaic. This will save the image information for every tile in the grid, preserving the full design. The disadvantage is that removal of tiles from the database will cause the design to have holes upon reload.
  • Save the pattern. This saves the information about connections, but loses all information about specific tiles used, along with a low resolution jpg preview of the pattern. Do this to save particularly nice designs, or designs you made yourself. The design will become populated with tiles available according to the current option setting upon loading. Look below for a pattern library.


It is the responsibility of the user of this program to comply with the licenses put on the individual tiles. The program will write out a list of contributors to each image file in a html file of the same base name, for attribution purposes.

I will probably upgrade the license filtering engine to allow filtering for individual CC licenses, but for now all you can do is keep tiles with the wrong license out of the mosaic. If you leave them in, be aware of the legal implications.

Switch groups

The tool can handle both the Long Line and the Patches group pools and tile collections. To switch from one to the other, just press the menu item.


(1.0.3. build 10)

Pattern library

Patterns can be saved in .pat files. Here is a few in a zip archive. Download, unzip and load them in the tool.


Have fun and do things like this:

Version history

Changes for 1.0.4 build 12:

  • Tiles are now rotated when necessary
  • Draw function reworked. Holding the left button and moving the mouse now draws a continuous line
  • Saved jpg mosaics can now be split
  • Clicking on a tile in mosaic view when no drawing button is active now selects the tile

Changes for 1.0.4 build 11:

  • Fixed a bug in handling of licenses
  • Added color averaging to database
  • Added ability to design mosaics using a color, luminance or saturation target
  • Added jpg thumbnails to pattern export
  • Changed export format for fullsize mosaics to jpg

Changes for 1.0.3 build 10:

  • Download tags and license info for a single tile
  • Cleanup of tile overview
  • Ability to restrict number of tiles per user
  • Ability to suppress end tiles
  • Ability to avoid multiple tile use
  • Double clicking a tile opens its page on Flickr

Changes for 1.0.3 build 9:

  • Ability to select tiles by type for mosaics
  • Differentiating the crossings
  • Ability to display overview of only tiles of one type or only usable tiles, or both
  • Retouch tool for changing tiles while keeping the type
  • Draw tool for placing a tile in harmony with neighbors
  • Swap tool for swapping two tiles
  • Ability to skip confirmation for automatic updates