Some Tools for Image Collectors


stic bundles a few Linux tools which are intended to support the task of collecting an unreasonable amount of pictures (preferrably in JPEG format).

a program for detecting duplicate or very similar images. It maintains a database of characteristic color samples which it compares with submitted pictures. similar depends on libjpeg and ImageMagick 's convert (on a modern Linux desktop system these components should already be present). similar contains the communications module described at sagent.
Storage medium may be a usual filesystem or a MySQL database. There also is a MySQL UDF extension to compare image samples within SQL queries.
a core program to perform file management tasks on an image collection. Its main purpose is to coordinate file movements with the content of similar's database. This applies to importing new files which get tested against the existent collection, as well as to inform similar about moving and deleting files within the collection. simv depends on an external image viewer like ImageMagick 's display (should already be present on a modern Linux desktop system) or John Bradley's xv (quite a fast one). It contains the communications module described at sagent.
a standalone version of the communications module used in simv and similar. This software receives input from its start terminal and multiple clients, distributes several types of output back to them, and is also able to act itself as such a client.
Since communications mainly use TCP/IP there is an encryption layer (Blowfish with 256 bit keys) which provides user authentication. Any single activity of such a user may be particularly permitted or denied. Secure connections should be possible that way as long as one can defend the keyfiles and programs on client and server host against foreign access.
Front-end connection software is available in C, Tcl/Tk and PHP to build custom clients. In the most primitive case even telnet can act as a client.
The standalone program sagent may be used as communications node in a tree of clients. Another purpose is to be a shell frontend which sends commands to a server and receives its replies.
a command line based NNTP (newsgroups) client. It is mainly intended for automatic download of images by use of a filter language. Nevertheless it also downloads the message texts and converts them to HTML code which includes the downloaded images. Also, it is capable of automatically posting sets of images to the newsgroups.

A good collection needs a good backup. If you got a CD burner, try this :
a CD backup tool not specific to images. It is able to create one or more CDs in ISO-9660 format which is readable on most computer systems.

The tools are designed to be very independent of the system flavor. On an average Linux desktop there should be no need to update existing system components. Actually one could use stic without having display equipment for graphics.
Any program activity which is possible in dialog may also be performed in batch runs. Therefore the tools are quite suitable for users who like to get boring tasks automated and manual tasks simplified.

I hope to find people who contribute frontend clients which fit into environments like Gnome or KDE (i use fvwm2) or employ languages like Perl or Java. Maybe some other programmers find the sagent module interesting since it needs no special libraries and should be very portable.

This software is copyright 2001-2004, Thomas Schmitt and is provided to you without any warranty under an open source BSD license. (see file COPYING)

about decoding of yEnc (stic-0.5 or above)
more advanced xv changes
sagent_helptext (also included in helptexts of similar and simv)


Outdated :

Next version under development :

Contact:, Thomas Schmitt.

Most friendly hosted by:
100 % Microsoft free
SourceForge Logo

Links to my other published software projects :
scdbackup, multi volume CD backup
(a second source of above)
pppoem, a DSL throughput monitor (mainly for kernel 2.4.4)

Legal statement: This website does not serve any commercial purpose.
If you are interested in hiring me for commercial projects around Linux or other Unix-like systems, please contact me refering :
Thomas Schmitt Softwareentwicklung, Design Implementation Support