sam
ac072123b4
* screen.c: add pipi_render_halftone() to create a 45-degree clustered dot
halftoning pattern.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2767 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
6e0afb6f37
* Put the random and Bayer stock image generation into pipi/render/*.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2765 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
645169e3b1
* Add the "halftone" dithering method, which uses classical halftone (aka.
clustered ordered dither). Halftoning levels aren't terribly well
supported yet, though.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2761 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
44c9b8e15d
* Get rid of the specific error diffusion functions, since our stock kernels
work perfectly well.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2759 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
90c7527281
* Add pipi_dither_ediff(), a generic error diffusion dithering algorithm
that uses an image as the error diffusion kernel.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2758 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
6433a59c97
* rgb.c: implement pipi_red(), pipi_green() and pipi_blue() to extract
separate channels.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2754 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
e38943a327
* rgb.c: implement pipi_rgb(), to combine three RGB channels.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2753 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
b40fc1b330
* atkinson.c: implement Atkinson dithering.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2751 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
36fb60cacf
* transform.c: implement pipi_rotate90, pipi_rotate180 and pipi_rotate270.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2750 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
2da45f954b
* Implement pipi_vflip() and pipi_hflip().
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2749 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
0cab178432
* color.c: implement pipi_threshold().
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2747 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
31fec9b526
* Add pipi_dilate() / pipi_erode() and --dilate / --erode.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2746 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
d9f3b654bc
* median.c: add a median filter. Highly unoptimised for now.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2744 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
baa3d82e4b
* Move the palette reduction algorithm into pipi_reduce().
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2736 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
e50ce5c67a
* color.c: implement pipi_brightness() and pipi_contrast().
* pipi.c: add --brightness and --contrast.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2725 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
jylam
22b3af001b
* Added string.h to list of included files, for memcpy()
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2722 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
18e1cc4471
* Add pipi_invert() to invert an image's colours.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2718 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
48b881b6fa
* Add pipi_tile, to create image mosaics.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2717 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
97930521fc
* 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
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2715 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
b74fad466b
* Implement difference, multiply, divide, screen and overlay blend methods.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2711 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
da84205cde
* subadd.c: add pipi_sub() and pipi_add() as another way to combine two
images.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2708 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
6fb5354eff
* minmax.c: add pipi_min() and pipi_max() as another way to combine two
images.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2706 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
9bd6b555f9
* mean.c: implement pipi_mean() to compute a mean image.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2705 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
25cdf35a86
* 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.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2700 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
eb9a270380
* 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
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2696 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
3014994c61
* 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.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2695 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
0f3943d0fe
* Add functions that handle a stack-based processing queue.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2692 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
77ec441434
* blur.c: implement box blur; currently runs in O(n) but we could make it
O(1) trivially.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2681 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
b7c2d1f847
* autocontrast.c: simple autocontrast filter; does not work very well.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2680 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
c269c219b2
* Get rid of test.c, it was no longer useful anyway.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2679 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
jylam
baa61a9f6d
* Handle alpha layer in floodfill (but don't make it conditionnal to the algorithm)
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2678 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
jylam
290e151913
* First shot of a floodfiller (both u32 and float, 4 neighbours)
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2676 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
0eda956bfc
* random.c: implement random dithering using a deterministic pseudo-RNG.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2671 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
66f9ce5ea4
* pipi.c: implement pipi_copy().
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2668 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
a17c6753e3
* pixels.c: store byte length and bits-per-pixel value in the pipi_pixels_t
structure.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2667 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
41efcdecc0
* Prefix dithering functions with _dither_ to avoid namespace cluttering.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2666 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
6a3309663e
* ordered.c: implement Bayer dithering (pretty trivial).
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2665 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
89f35cb8fd
* convolution.c: generic convolution method. Does not take advantage of
separable kernels yet.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2658 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
87f8e922ab
* Error diffusion methods now support either raster or serpentine scan.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2656 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
302ce37f8e
* ostromoukhov.c: Ostromoukhov's simple error diffusion algorithm.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2654 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
628c2618da
* dbs.c: new dithering function: Direct Binary Search. One of the best
dithering methods as of today, though extremely slow.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2651 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
eaad4db6f9
* measure.c: there is now pipi_measure_msd in addition to pipi_measure_rmsd.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2650 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
1408cff41d
* Add Floyd-Steinberg grayscale dithering.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2637 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
9a536afd4f
* measure.c: started writing error/measure functions. First one is RMSD.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2635 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
eea9f9b829
* pixels.c: start supporting grayscale images.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2633 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
0d8f01566b
* pixels.c: add support for 24-bpp BGR format.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2630 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
8953c91d6b
* 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.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2629 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
4a857277a7
* blur.c: support for variable blur radius and Gaussian offset.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2617 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
31328a14aa
* Big API reorganisation. Now libpipi can transparently convert between
colour spaces for a given image. For instance, if pipi_gaussian_blur is
applied to a 32-bpp image, it is automatically converted to gamma-corrected
32-bit floats beforehands, then converted back to normal.
* TODO: clipping, regions of interest, more formats, getpixel macros...
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2605 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago
sam
7d147f3576
* Test implementation of Gaussian blurring. It's awfully slow and does not
use the separation property, but it's just for a test.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2603 92316355-f0b4-4df1-b90c-862c8a59935f
16 years ago