Commit Graph

  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • *
  • 6433a59 * rgb.c: implement pipi_red(), pipi_green() and pipi_blue() to extract separate channels. by sam 2008-08-23 09:11:15 +0000
  • e38943a * rgb.c: implement pipi_rgb(), to combine three RGB channels. by sam 2008-08-23 09:11:10 +0000
  • 10baf86 * pipi.c: implement --roll, RPL-style. by sam 2008-08-23 09:11:06 +0000
  • b40fc1b * atkinson.c: implement Atkinson dithering. by sam 2008-08-23 09:11:00 +0000
  • 36fb60c * transform.c: implement pipi_rotate90, pipi_rotate180 and pipi_rotate270. by sam 2008-08-21 00:10:22 +0000
  • 2da45f9 * Implement pipi_vflip() and pipi_hflip(). by sam 2008-08-21 00:10:16 +0000
  • 412dafd * median.c: oops, removed old debugging hack from pipi_median(). by sam 2008-08-20 22:07:19 +0000
  • 0cab178 * color.c: implement pipi_threshold(). by sam 2008-08-20 22:00:23 +0000
  • 31fec9b * Add pipi_dilate() / pipi_erode() and --dilate / --erode. by sam 2008-08-20 22:00:17 +0000
  • 114afed * median.c: fix the RGBA median filter. by sam 2008-08-20 22:00:12 +0000
  • d9f3b65 * median.c: add a median filter. Highly unoptimised for now. by sam 2008-08-20 22:00:06 +0000
  • a1ad690 * blur.c: proper box blur implementation that runs linearly with pixel count. by sam 2008-08-20 22:00:01 +0000
  • ab1487e * Add --boxblur to the pipi command line. by sam 2008-08-20 21:59:55 +0000
  • 8e5b11a * convolution_template.h: disambiguate parentheses. by sam 2008-08-20 21:59:51 +0000
  • db43a4d * img2rubik.c: add quick and dirty dithering code to img2rubik. by sam 2008-08-20 01:38:51 +0000
  • 8996a53 * blur.c: improve the Gaussian kernel interpolation. by sam 2008-08-20 01:38:46 +0000
  • baa3d82 * Move the palette reduction algorithm into pipi_reduce(). by sam 2008-08-20 01:38:39 +0000
  • f6e201c * img2rubik.c: improve stability by clipping t. by sam 2008-08-16 13:16:19 +0000
  • 585af30 * img2rubik.c: fix convex hull build, some points were not properly excluded. by sam 2008-08-16 13:16:13 +0000
  • b9ccaad * img2rubik.c: + fix RGB-space UV projection. + free allocated memory at the end. + clean up the debug messages and make them optional. by sam 2008-08-16 12:23:28 +0000
  • 0151c72 * More img2rubik experimentation, with a lot of debugging messages. by sam 2008-08-16 00:54:16 +0000
  • e23268c * img2rubik.c: factor out the hull generation so that we can also build a convex hull of the Neugebauer primaries. by sam 2008-08-16 00:54:11 +0000
  • 89ae481 * More color reduction work: we can now constraint an image's palette to the convex hull of a given palette, except it currently first converts the image to grayscale. by sam 2008-08-16 00:54:07 +0000
  • f6f7cbc * pixels.c: fix uninitialised w and h in pipi_getpixels. by sam 2008-08-16 00:54:03 +0000
  • 9ba0524 * stock.c: the random stock image now creates RGB noise. by sam 2008-08-16 00:53:59 +0000
  • 13bbfb8 * Start working on colour reduction with a constrained palette. by sam 2008-08-16 00:53:54 +0000
  • e50ce5c * color.c: implement pipi_brightness() and pipi_contrast(). * pipi.c: add --brightness and --contrast. by sam 2008-08-16 00:53:50 +0000
  • 43e5e3a * Add a NOTES file for random notes. by sam 2008-08-16 00:53:42 +0000
  • 22b3af0 * Added string.h to list of included files, for memcpy() by jylam 2008-08-15 11:11:12 +0000
  • 7c5ed98 * Removed pipi/fill directory (I thought I had done this before. Hurra Pastis.) by jylam 2008-08-15 10:34:24 +0000
  • 37ab68e * blur.c: improve the Gaussian kernel generation by interpolating its values in a quincunx pattern. by sam 2008-08-14 18:35:07 +0000
  • 18e1cc4 * Add pipi_invert() to invert an image's colours. by sam 2008-08-14 18:35:01 +0000
  • 48b881b * Add pipi_tile, to create image mosaics. by sam 2008-08-14 18:34:57 +0000
  • edd4a03 * Add the --scale flag. Resizes the image like --geometry, except with relative parameters. by sam 2008-08-14 18:34:51 +0000
  • 9793052 * blur.c: add an argument to the gaussian convolution to specify an angle. Of course since the kernel is no longer separable, it becomes awfully slow with large images. Here is a tileable brushed metal texture: # pipi pipi:random512x512 --wrap --blur 20x0r25 -o image.png by sam 2008-08-14 18:34:44 +0000
  • 3bcf099 * Allow pipi --blur to specify both the X and Y Gaussian sizes. Now we can create some nice, tileable brushed metal textures: pipi pipi:random15x15 --geometry 512x512 --wrap --blur 40 \ pipi:random512x512 --wrap --blur 10x0 --autocontrast --wrap \ --blur 20x0 --multiply -o image.png by sam 2008-08-13 20:26:38 +0000
  • 555ba32 * pipi.c: add the --geometry flag (only wxh for now). by sam 2008-08-13 20:26:33 +0000
  • b74fad4 * Implement difference, multiply, divide, screen and overlay blend methods. by sam 2008-08-13 20:26:28 +0000
  • 1e47505 * convolution.c: move local function prototypes to convolution_template.h. by sam 2008-08-13 20:26:22 +0000
  • b089bc1 * context.c: add the "swap" command to swap two images in the stack. by sam 2008-08-13 20:26:18 +0000
  • da84205 * subadd.c: add pipi_sub() and pipi_add() as another way to combine two images. by sam 2008-08-13 20:26:11 +0000
  • a5cecea * stock.c: allow arbitrary sizes for the bayer stock image, even if they give shitty results when used for ordered dithering. by sam 2008-08-12 17:18:34 +0000
  • 6fb5354 * minmax.c: add pipi_min() and pipi_max() as another way to combine two images. by sam 2008-08-12 17:18:30 +0000
  • 9bd6b55 * mean.c: implement pipi_mean() to compute a mean image. by sam 2008-08-12 17:18:25 +0000
  • 31fd250 * Support --autocontrast in pipi. by sam 2008-08-12 17:18:17 +0000
  • 7f3e08d * convolution.c: support for wrap-around in convolutions. * pipi.c: add the "--wrap" flag to tell libpipi that a given image wraps around. by sam 2008-08-11 22:57:21 +0000
  • 103e062 * pipi.c: implement the "--gray" flag for grayscale conversion. by sam 2008-08-11 22:02:13 +0000
  • ec187df * convolution_template.h: split convolution routines into separate functions for each pixel format. by sam 2008-08-11 22:02:08 +0000
  • 25cdf35 * jajuni.c: add Jarvis-Judice-Ninke dithering. It's a Floyd-Steinberg-like error diffusion method that has fewer high resolution structural artifacts at the expense of resolution. by sam 2008-08-11 20:02:34 +0000
  • b550098 * floydsteinberg.c: minor optimisation in the FStein error propagation. by sam 2008-08-11 20:02:29 +0000
  • b658564 * context.c: fix an old bug that was incorrectly rounding down blur values. by sam 2008-08-11 20:02:25 +0000
  • ee6e43c * stock.c: generate images with random noise. by sam 2008-08-11 20:02:20 +0000
  • eb9a270 * pipi_dither_ordered() now takes two arguments; any image can be used as the ordered dithering matrix. To get the old behaviour, use: pipi image.png pipi:bayer8 --dither ordered out.png by sam 2008-08-11 20:02:16 +0000
  • 3014994 * codec.c: support for stock images in pipi_load(). * stock.c: start working on stock image generation; for instance: pipi pipi:bayer64 -o image.png will generate a 64x64 Bayer dithering pattern and save it to image.png. by sam 2008-08-11 20:02:10 +0000
  • d6b8cca * context.c: implement various dithering commands and Gaussian blur. * pipi.c: add "--blur" and "--dither" commandline options. * blur.c dither.c: remove these examples, pipi.c works a lot better: pipi src.png --blur 10 dest.png pipi src.png --dither dbs dest.png (and of course combinations are possible) by sam 2008-08-11 00:51:05 +0000
  • 0549f43 * Start working on "pipi", a command-line libpipi tool. It will be similar to convert, display, mogrify, animate etc. It can already convert between image formats (eg. "pipi src.png -o dest.jpeg"). by sam 2008-08-11 00:51:01 +0000
  • 0f3943d * Add functions that handle a stack-based processing queue. by sam 2008-08-11 00:50:55 +0000
  • 1ff729f * convolution.c: fix a small memory leak in the convolution filter. by sam 2008-08-10 15:16:47 +0000
  • 77ec441 * blur.c: implement box blur; currently runs in O(n) but we could make it O(1) trivially. by sam 2008-08-08 18:11:24 +0000
  • b7c2d1f * autocontrast.c: simple autocontrast filter; does not work very well. by sam 2008-08-08 18:11:17 +0000
  • c269c21 * Get rid of test.c, it was no longer useful anyway. by sam 2008-08-08 18:11:12 +0000
  • baa61a9 * Handle alpha layer in floodfill (but don't make it conditionnal to the algorithm) by jylam 2008-08-08 18:07:10 +0000
  • 290e151 * First shot of a floodfiller (both u32 and float, 4 neighbours) by jylam 2008-08-07 15:21:17 +0000
  • 5326865 * dbs.c: generate the initial halftone using random dithering instead of Floyd-Steinberg in order to avoid the energy level getting locally stuck around error diffusion structure artifacts. by sam 2008-08-04 21:50:02 +0000
  • 0eda956 * random.c: implement random dithering using a deterministic pseudo-RNG. by sam 2008-08-04 21:49:57 +0000
  • 18dd51e * Dithering algorithms no longer modify the original image. by sam 2008-08-04 17:23:59 +0000
  • 2dc8bb3 * pipi.c: fix a memory leak caused by empty picture having codec_format set to zero (and clashing with a real image format). by sam 2008-08-04 17:23:55 +0000
  • 66f9ce5 * pipi.c: implement pipi_copy(). by sam 2008-08-04 17:23:51 +0000
  • a17c675 * pixels.c: store byte length and bits-per-pixel value in the pipi_pixels_t structure. by sam 2008-08-04 17:23:47 +0000
  • 41efcde * Prefix dithering functions with _dither_ to avoid namespace cluttering. by sam 2008-08-04 17:23:44 +0000
  • 6a33096 * ordered.c: implement Bayer dithering (pretty trivial). by sam 2008-08-04 17:23:38 +0000
  • a6dcd80 * dbs.c: optimise DBS by ignoring 16x16 cells that had no pixel changes for the last two iterations. by sam 2008-08-03 18:36:26 +0000
  • 2a3c7ca * dbs.c: improve the DBS human visual system kernel by adding two Gaussian kernels. by sam 2008-08-03 18:36:17 +0000
  • bf31390 * sharpen.c: add a sharpen filter example, using our generic convolution routine. Note that it is not the "real" sharpen which should be built on top of a gaussian kernel. by sam 2008-08-03 16:03:46 +0000
  • 8c4591f * blur.c: remove the blurring code and use our generic convolution routine, which correctly recognises the Gaussian kernel as a separable filter. As a result, it is now 50% faster because the normalisation occurs at kernel build time. by sam 2008-08-03 15:54:56 +0000
  • 03ca8dc * convolution.c: automatically detect when a convolution filter is separable and switch algorithms to speed up processing. by sam 2008-08-03 15:54:48 +0000
  • c587c29 * blur.c: fix the blur example’s argument checking. by sam 2008-08-03 15:54:42 +0000
  • 89f35cb * convolution.c: generic convolution method. Does not take advantage of separable kernels yet. by sam 2008-08-03 15:54:20 +0000
  • 870828b * edd.c: output MSD instead of RMSD in the displacement computation. by sam 2008-08-03 11:48:16 +0000
  • 87f8e92 * Error diffusion methods now support either raster or serpentine scan. by sam 2008-08-03 11:48:07 +0000
  • 99d8af7 * pixels.c: support more conversion combinations. by sam 2008-08-03 11:47:11 +0000
  • 302ce37 * ostromoukhov.c: Ostromoukhov's simple error diffusion algorithm. by sam 2008-08-03 03:31:20 +0000
  • 2182fdf * floydsteinberg.c: perform Floyd-Steinberg dithering on a serpentine path. by sam 2008-08-03 03:30:53 +0000
  • 3e575ba * dither.c: add an example program for dithering methods. by sam 2008-08-03 02:17:46 +0000
  • 628c261 * dbs.c: new dithering function: Direct Binary Search. One of the best dithering methods as of today, though extremely slow. by sam 2008-08-03 02:17:39 +0000
  • eaad4db * measure.c: there is now pipi_measure_msd in addition to pipi_measure_rmsd. by sam 2008-08-03 02:17:15 +0000
  • 18fd827 * edd.c: output E_fast as well. by sam 2008-08-02 16:56:03 +0000
  • 5974ab9 * edd.c: example program that computes the Floyd-Steinberg displacement, about twice as fast as the original code in research/2008-displacement. by sam 2008-08-02 12:13:01 +0000
  • 4a27892 * blur.c: adapt the kernel size to large values of dx and/or dy. * blur.c: fix the dx/dy sign meaning. by sam 2008-08-02 12:12:58 +0000
  • 1408cff * Add Floyd-Steinberg grayscale dithering. by sam 2008-08-02 00:01:24 +0000
  • 36da8b0 * pixels.c: fix a typo in the dithering method that could cause crashes. by sam 2008-08-02 00:01:20 +0000
  • 9a536af * measure.c: started writing error/measure functions. First one is RMSD. by sam 2008-08-02 00:01:16 +0000
  • a11f92f * blur.c: support for greyscale images. by sam 2008-08-02 00:01:12 +0000
  • eea9f9b * pixels.c: start supporting grayscale images. by sam 2008-08-02 00:01:08 +0000
  • f687640 * codec.c: bump Imlib2 and OpenCV priorities over SDL. by sam 2008-08-02 00:01:04 +0000
  • af15db5 * opencv.c: bring the OpenCV codec up to date. by sam 2008-08-02 00:01:00 +0000
  • 0d8f015 * pixels.c: add support for 24-bpp BGR format. by sam 2008-08-02 00:00:56 +0000
  • 8953c91 * pipi.c: reimplement pipi_new() without relying on the underlying codec library, so we can have several or none of them at some time. * sdl.c imlib.c: allow to save images that weren't created using the current codec. by sam 2008-08-02 00:00:51 +0000
  • 732f6b2 * configure.ac: fix the OpenCV detection by using pkg-config. by sam 2008-08-02 00:00:45 +0000
  • 3d86c2f * Start shipping unit tests. The first one checks that converting an 8-bit per channel picture to float32 then back again does not change the image. by sam 2008-07-31 22:02:45 +0000