Skip to content
A collection of farbfeld tools
C Makefile Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bintest
.gitignore
Makefile
Readme.md
config.mk
demo.png
demo.sh
ff-add.c
ff-chuffle.c
ff-color.c
ff-cosgen.c
ff-gamma.c
ff-glow.c
ff-invert.c
ff-mul.c
ff-singen.c
ff-sub.c
test.sh
tools.c
tools.h
tools.l.in

Readme.md

ff-tools

A collection of farbfeld tools

This is a collection of tools working with the farbfeld image file format.

Demo image

(Code: demo.sh)

Generators

  • ff-glow A circle glow calculator
  • ff-color A static color generator
  • ff-cosgen A cos-wave generator (x-direction)
  • ff-singen A sinewave generator (x-direction)

Functions

  • ff-add Add two images
  • ff-chuffle A channel shuffler
  • ff-mul A multiplication tool
  • ff-sub Subtract: <first image> - <second image>

Corrections

  • ff-gamma A gamma tool

Manual

General Usage

All of these tools have their input via stdin and output to stdout. So you should use them like this:

cat image.ff | ff-tool [parameters] | viewer

For example to view a .png file with lel and basic gamma applied:

cat file.png | png2ff | ff-gamma | lel

(assuming you have farbfeld and lel installed.)

Scripting

ff-tools is created with scripting in mind. You can easily write scripts to automatically perform tasks and profit from various scripting techniques like variables, etc. Here is an example:

#!/bin/bash

if [ "$#" -eq 0 ]; then
	SCALE=4
else
	SCALE=$1
fi

SIZE=256
S=$(($SIZE*$SCALE))
REP=35

TMP=$(mktemp -d)
sin=$TMP/sin
cos=$TMP/cos
mul=$TMP/mul
col=$TMP/col
result=$TMP/result

ff-singen $S $S $REP >$sin
ff-cosgen $S $S $(($REP+4)) >$cos
ff-color $S $S 0.8 0.7 1.0 >$col

cat $sin $cos | ff-mul >$mul
cat $mul $col | ff-mul >$result

cat $TMP/result
rm -Rf $TMP

Generators

Generators do not have input images, they just produce images from scratch (and a few parameters).

  • ff-glow size. Output: Image (size x size)
  • ff-color width height red green blue [alpha]. Output: Image (width x height)
  • ff-cosgen width height steps. Output: Image (width x height)
  • ff-singen width height steps. Output: Image (width x height)

Functions

  • ff-chuffle r g b a.
    Input: Image
    Output: Image with shuffled rgba channels
    Examples:
    • cat image.ff | ff-chuffle g b r a > result.ff (rotates rgb)
    • cat image.ff | ff-chuffle g g r a > result.ff (fill more channels, discard others)
  • ff-add.
    Input: Two images with the exact same size.
    Output: Addition result.
    Example: cat a.ff b.ff | ff-add > result.ff
  • ff-mul.
    Input: Two images with the exact same size.
    Output: Multiplication result.
    Example: cat a.ff b.ff | ff-mul > result.ff
  • ff-sub.
    Input: Two images with the exact same size.
    Output: Subtraction result.
    Example: cat a.ff b.ff | ff-sub > result.ff

Corrections

  • ff-gamma [gamma].
    Input: Image
    Output: Image with gamma (default: 2.2)
    Examples:
    • cat image.ff | ff-gamma > result.ff
    • cat image.ff | ff-gamma 3.4 > result.ff
You can’t perform that action at this time.