sam
4936ebfa16
Fix a very old crash in the box blur filter that occurred when the image
was broader than tall.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@3402 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
1ff231b9f7
Change _C pixel format suffixes into _U8 for more clarity.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@3342 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
bb926c7a95
Rename pipi_getpixel into pipi_get_pixels.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@3340 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
4bfa33f1b9
Start writing Visual Studio projects.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2904 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
0eb36a6225
Support C99 types on Win32 through the same hacks as in libcaca.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2902 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
36438eed8f
Fix headers.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2844 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
0cca668930
* pipi_template.h: factor the last unrolled preprocessor loop.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2806 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
729fb74fec
* blur.c: support wrap around images in box blur (it's actually support for
non-wrap-around images; wrap around was the default behaviour).
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2802 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
916f579194
* blur.c: use the template system for the boxblur functions.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2801 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
5a9d928338
* blur.c: fix the separate filter optimisation in the blur code by not
interpolating the Gaussian kernel integral when dx = dy = angle = 0.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2800 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
a1ad690056
* blur.c: proper box blur implementation that runs linearly with
pixel count.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2743 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
8996a532df
* blur.c: improve the Gaussian kernel interpolation.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2737 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
37ab68e449
* blur.c: improve the Gaussian kernel generation by interpolating its
values in a quincunx pattern.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2719 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
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 години
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 години
sam
8c4591f1d9
* 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.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2661 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
4a278923ff
* blur.c: adapt the kernel size to large values of dx and/or dy.
* blur.c: fix the dx/dy sign meaning.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2643 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
a11f92ff95
* blur.c: support for greyscale images.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2634 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
877e7b21a9
* filter/blur.c: avoid annoying side effects with very small or negative
blur radii.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2619 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
ea38654c88
* filter/blur.c: minor optimisation in the kernel generation.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2618 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
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 години
sam
42af43ad99
* blur.c: separated blur; it's now incredibly faster.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2608 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
sam
af0c7f52fb
* blur.c: fix overflow errors.
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2606 92316355-f0b4-4df1-b90c-862c8a59935f
преди 16 години
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 години
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 години