Browse Source

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
master
sam 16 years ago
parent
commit
1ff231b9f7
44 changed files with 304 additions and 304 deletions
  1. +1
    -1
      examples/edd.c
  2. +1
    -1
      examples/img2rubik.c
  3. +5
    -5
      pipi-php/php_pipi.c
  4. +1
    -1
      pipi/analysis/histogram.c
  5. +4
    -4
      pipi/analysis/measure.c
  6. +11
    -11
      pipi/codec/coreimage.m
  7. +2
    -2
      pipi/codec/gdi.c
  8. +2
    -2
      pipi/codec/gdiplus.cpp
  9. +18
    -18
      pipi/codec/imlib.c
  10. +11
    -11
      pipi/codec/modular/jpeg.c
  11. +18
    -18
      pipi/codec/opencv.c
  12. +2
    -2
      pipi/codec/oric.c
  13. +18
    -18
      pipi/codec/sdl.c
  14. +3
    -3
      pipi/combine/mean.c
  15. +6
    -6
      pipi/combine/minmax.c
  16. +12
    -12
      pipi/combine/mulscreen.c
  17. +10
    -10
      pipi/combine/rgb.c
  18. +9
    -9
      pipi/combine/subadd.c
  19. +1
    -1
      pipi/context.c
  20. +4
    -4
      pipi/dither/dbs.c
  21. +2
    -2
      pipi/dither/ediff.c
  22. +4
    -4
      pipi/dither/ordered.c
  23. +1
    -1
      pipi/dither/ostromoukhov.c
  24. +1
    -1
      pipi/dither/random.c
  25. +5
    -5
      pipi/filter/autocontrast.c
  26. +6
    -6
      pipi/filter/blur.c
  27. +20
    -20
      pipi/filter/color.c
  28. +10
    -10
      pipi/filter/convolution.c
  29. +10
    -10
      pipi/filter/dilate.c
  30. +5
    -5
      pipi/filter/median.c
  31. +25
    -25
      pipi/filter/transform.c
  32. +1
    -1
      pipi/paint/bezier.c
  33. +5
    -5
      pipi/paint/floodfill.c
  34. +6
    -6
      pipi/paint/line.c
  35. +2
    -2
      pipi/paint/tile.c
  36. +7
    -7
      pipi/pipi.h
  37. +37
    -37
      pipi/pixels.c
  38. +2
    -2
      pipi/quantize/reduce.c
  39. +1
    -1
      pipi/render/noise.c
  40. +5
    -5
      pipi/render/screen.c
  41. +2
    -2
      pipi/resize.c
  42. +1
    -1
      pipi/stock.c
  43. +4
    -4
      pipi/tiles.c
  44. +3
    -3
      test/u8tof32tou8.c

+ 1
- 1
examples/edd.c View File

@@ -49,7 +49,7 @@ int main(int argc, char *argv[])


/* Load image, convert it to grayscale, dither it with Floyd-Steinberg */ /* Load image, convert it to grayscale, dither it with Floyd-Steinberg */
img = pipi_load(argv[1]); img = pipi_load(argv[1]);
pipi_set_colorspace(img, PIPI_PIXELS_Y_F);
pipi_set_colorspace(img, PIPI_PIXELS_Y_F32);
gauss = pipi_gaussian_blur(img, sigma); gauss = pipi_gaussian_blur(img, sigma);
kernel = pipi_load("ediff:fs"); kernel = pipi_load("ediff:fs");
dither = pipi_dither_ediff(img, kernel, PIPI_SCAN_RASTER); dither = pipi_dither_ediff(img, kernel, PIPI_SCAN_RASTER);


+ 1
- 1
examples/img2rubik.c View File

@@ -34,7 +34,7 @@ int main(int argc, char *argv[])
pipi_image_t *src = pipi_load(argv[1]); pipi_image_t *src = pipi_load(argv[1]);
pipi_image_t *dst = pipi_reduce(src, NCOLORS, mypal); pipi_image_t *dst = pipi_reduce(src, NCOLORS, mypal);


pipi_pixels_t *p = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
pipi_pixels_t *p = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
float *data = (float *)p->pixels; float *data = (float *)p->pixels;
w = p->w; w = p->w;
h = p->h; h = p->h;


+ 5
- 5
pipi-php/php_pipi.c View File

@@ -150,11 +150,11 @@ PHP_MINIT_FUNCTION(pipi) {
REGISTER_LONG_CONSTANT("PIPI_SCAN_RASTER", PIPI_SCAN_RASTER, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PIPI_SCAN_RASTER", PIPI_SCAN_RASTER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_SCAN_SERPENTINE", PIPI_SCAN_SERPENTINE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PIPI_SCAN_SERPENTINE", PIPI_SCAN_SERPENTINE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_UNINITIALISED", PIPI_PIXELS_UNINITIALISED, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PIPI_PIXELS_UNINITIALISED", PIPI_PIXELS_UNINITIALISED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_RGBA_C", PIPI_PIXELS_RGBA_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_BGR_C", PIPI_PIXELS_BGR_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_RGBA_F", PIPI_PIXELS_RGBA_F, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_Y_F", PIPI_PIXELS_Y_F, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_MASK_C", PIPI_PIXELS_MASK_C, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_RGBA_U8", PIPI_PIXELS_RGBA_U8, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_BGR_U8", PIPI_PIXELS_BGR_U8, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_RGBA_F32", PIPI_PIXELS_RGBA_F32, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_Y_F32", PIPI_PIXELS_Y_F32, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_MASK_U8", PIPI_PIXELS_MASK_U8, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_PIXELS_MAX", PIPI_PIXELS_MAX, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PIPI_PIXELS_MAX", PIPI_PIXELS_MAX, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_COLOR_R", PIPI_COLOR_R, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PIPI_COLOR_R", PIPI_COLOR_R, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PIPI_COLOR_G", PIPI_COLOR_G, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PIPI_COLOR_G", PIPI_COLOR_G, CONST_CS | CONST_PERSISTENT);


+ 1
- 1
pipi/analysis/histogram.c View File

@@ -43,7 +43,7 @@ int pipi_get_image_histogram(pipi_image_t *img, pipi_histogram_t*h, int flags)


if(!h) return -1; if(!h) return -1;


p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_C);
p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_U8);
data = (uint8_t *)p->pixels; data = (uint8_t *)p->pixels;
memset(h->a, 0, 256*(sizeof(unsigned int))); memset(h->a, 0, 256*(sizeof(unsigned int)));
memset(h->r, 0, 256*(sizeof(unsigned int))); memset(h->r, 0, 256*(sizeof(unsigned int)));


+ 4
- 4
pipi/analysis/measure.c View File

@@ -42,11 +42,11 @@ double pipi_measure_msd(pipi_image_t *i1, pipi_image_t *i2)
f2 = i2->last_modified; f2 = i2->last_modified;


/* FIXME: this is not right */ /* FIXME: this is not right */
pipi_get_pixels(i1, PIPI_PIXELS_Y_F);
pipi_get_pixels(i2, PIPI_PIXELS_Y_F);
pipi_get_pixels(i1, PIPI_PIXELS_Y_F32);
pipi_get_pixels(i2, PIPI_PIXELS_Y_F32);


p1 = (float *)i1->p[PIPI_PIXELS_Y_F].pixels;
p2 = (float *)i2->p[PIPI_PIXELS_Y_F].pixels;
p1 = (float *)i1->p[PIPI_PIXELS_Y_F32].pixels;
p2 = (float *)i2->p[PIPI_PIXELS_Y_F32].pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
for(x = 0; x < w; x++) for(x = 0; x < w; x++)


+ 11
- 11
pipi/codec/coreimage.m View File

@@ -47,19 +47,19 @@ pipi_image_t *pipi_load_coreimage(const char *name)
pipi_image_t *img; pipi_image_t *img;
img = pipi_new(w, h); img = pipi_new(w, h);


img->p[PIPI_PIXELS_RGBA_C].w = w;
img->p[PIPI_PIXELS_RGBA_C].h = h;
img->p[PIPI_PIXELS_RGBA_C].pitch = ([myImage bytesPerRow]/8) * img->w;
img->p[PIPI_PIXELS_RGBA_C].bpp = [myImage bitsPerPixel];
img->p[PIPI_PIXELS_RGBA_C].bytes = ([myImage bitsPerPixel]/8) * img->w * img->h;
img->last_modified = PIPI_PIXELS_RGBA_C;
img->p[PIPI_PIXELS_RGBA_U8].w = w;
img->p[PIPI_PIXELS_RGBA_U8].h = h;
img->p[PIPI_PIXELS_RGBA_U8].pitch = ([myImage bytesPerRow]/8) * img->w;
img->p[PIPI_PIXELS_RGBA_U8].bpp = [myImage bitsPerPixel];
img->p[PIPI_PIXELS_RGBA_U8].bytes = ([myImage bitsPerPixel]/8) * img->w * img->h;
img->last_modified = PIPI_PIXELS_RGBA_U8;


/* CoreImage feeds us with BGRA while we need RGBA, so convert it. /* CoreImage feeds us with BGRA while we need RGBA, so convert it.
* We also need to get a pitch==(w*bpp) in order to pipi to opper properly. * We also need to get a pitch==(w*bpp) in order to pipi to opper properly.
*/ */
int pitch = (img->p[PIPI_PIXELS_RGBA_C].bpp/8);
int pitch = (img->p[PIPI_PIXELS_RGBA_U8].bpp/8);
unsigned char *tmp = (unsigned char*)malloc(h*w*pitch); unsigned char *tmp = (unsigned char*)malloc(h*w*pitch);
unsigned char *orig = (unsigned char*)[myImage bitmapData]; unsigned char *orig = (unsigned char*)[myImage bitmapData];
int x, y, k=0, o=0, a=[myImage bytesPerRow] - (w*([myImage bitsPerPixel]/8)); int x, y, k=0, o=0, a=[myImage bytesPerRow] - (w*([myImage bitsPerPixel]/8));
@@ -87,8 +87,8 @@ pipi_image_t *pipi_load_coreimage(const char *name)
} }
o+=a; o+=a;
} }
img->p[PIPI_PIXELS_RGBA_C].pixels = tmp;
img->p[PIPI_PIXELS_RGBA_C].pitch = w*([myImage bitsPerPixel]/8);
img->p[PIPI_PIXELS_RGBA_U8].pixels = tmp;
img->p[PIPI_PIXELS_RGBA_U8].pitch = w*([myImage bitsPerPixel]/8);
@@ -97,7 +97,7 @@ pipi_image_t *pipi_load_coreimage(const char *name)
struct pipi_codec_coreimage *infos = (struct pipi_codec_coreimage *) img->codec_priv; struct pipi_codec_coreimage *infos = (struct pipi_codec_coreimage *) img->codec_priv;
infos->format = [myImage bitmapFormat]; infos->format = [myImage bitmapFormat];


pipi_pixels_t *p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_C);
pipi_pixels_t *p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_U8);
img->codec_free = pipi_free_coreimage; img->codec_free = pipi_free_coreimage;
@@ -109,7 +109,7 @@ pipi_image_t *pipi_load_coreimage(const char *name)
int pipi_save_coreimage(pipi_image_t *img, const char *name) int pipi_save_coreimage(pipi_image_t *img, const char *name)
{ {
NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init];
pipi_pixels_t *p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_C);
pipi_pixels_t *p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_U8);


int i; int i;
char *data = p->pixels; char *data = p->pixels;


+ 2
- 2
pipi/codec/gdi.c View File

@@ -53,7 +53,7 @@ pipi_image_t *pipi_load_gdi(const char *name)
} }


img = pipi_new(binfo.bmiHeader.biWidth, binfo.bmiHeader.biHeight); img = pipi_new(binfo.bmiHeader.biWidth, binfo.bmiHeader.biHeight);
p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_C);
p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_U8);
data = p->pixels; data = p->pixels;


binfo.bmiHeader.biBitCount = 32; binfo.bmiHeader.biBitCount = 32;
@@ -94,7 +94,7 @@ int pipi_save_gdi(pipi_image_t *img, const char *name)
uint8_t *data; uint8_t *data;
int x, y, padding; int x, y, padding;


p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_C);
p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_U8);
data = p->pixels; data = p->pixels;


padding = ((img->w * 3) + 3) / 4 * 4 - img->w * 3; padding = ((img->w * 3) + 3) / 4 * 4 - img->w * 3;


+ 2
- 2
pipi/codec/gdiplus.cpp View File

@@ -65,7 +65,7 @@ extern "C" pipi_image_t *pipi_load_gdiplus(const char *name)
} }


pipi_image_t *img = pipi_new(b->GetWidth(), b->GetHeight()); pipi_image_t *img = pipi_new(b->GetWidth(), b->GetHeight());
pipi_pixels_t *p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_C);
pipi_pixels_t *p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_U8);
memcpy(p->pixels, bdata.Scan0, bdata.Width * bdata.Height * 4); memcpy(p->pixels, bdata.Scan0, bdata.Width * bdata.Height * 4);


b->UnlockBits(&bdata); b->UnlockBits(&bdata);
@@ -138,7 +138,7 @@ extern "C" int pipi_save_gdiplus(pipi_image_t *img, const char *name)
return -1; return -1;
} }


pipi_pixels_t *p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_C);
pipi_pixels_t *p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_U8);
memcpy(bdata.Scan0, p->pixels, bdata.Width * bdata.Height * 4); memcpy(bdata.Scan0, p->pixels, bdata.Width * bdata.Height * 4);


b->UnlockBits(&bdata); b->UnlockBits(&bdata);


+ 18
- 18
pipi/codec/imlib.c View File

@@ -47,16 +47,16 @@ pipi_image_t *pipi_load_imlib2(const char *name)


img = pipi_new(imlib_image_get_width(), imlib_image_get_height()); img = pipi_new(imlib_image_get_width(), imlib_image_get_height());


img->p[PIPI_PIXELS_RGBA_C].pixels = imlib_image_get_data();
img->p[PIPI_PIXELS_RGBA_C].w = img->w;
img->p[PIPI_PIXELS_RGBA_C].h = img->h;
img->p[PIPI_PIXELS_RGBA_C].pitch = 4 * img->w;
img->p[PIPI_PIXELS_RGBA_C].bpp = 32;
img->p[PIPI_PIXELS_RGBA_C].bytes = 4 * img->w * img->h;
img->last_modified = PIPI_PIXELS_RGBA_C;
img->p[PIPI_PIXELS_RGBA_U8].pixels = imlib_image_get_data();
img->p[PIPI_PIXELS_RGBA_U8].w = img->w;
img->p[PIPI_PIXELS_RGBA_U8].h = img->h;
img->p[PIPI_PIXELS_RGBA_U8].pitch = 4 * img->w;
img->p[PIPI_PIXELS_RGBA_U8].bpp = 32;
img->p[PIPI_PIXELS_RGBA_U8].bytes = 4 * img->w * img->h;
img->last_modified = PIPI_PIXELS_RGBA_U8;


img->codec_priv = (void *)priv; img->codec_priv = (void *)priv;
img->codec_format = PIPI_PIXELS_RGBA_C;
img->codec_format = PIPI_PIXELS_RGBA_U8;
img->codec_free = pipi_free_imlib2; img->codec_free = pipi_free_imlib2;


img->wrap = 0; img->wrap = 0;
@@ -76,22 +76,22 @@ int pipi_save_imlib2(pipi_image_t *img, const char *name)
data = imlib_image_get_data(); data = imlib_image_get_data();


/* FIXME: check pitch differences here */ /* FIXME: check pitch differences here */
if(img->last_modified == PIPI_PIXELS_RGBA_C)
if(img->last_modified == PIPI_PIXELS_RGBA_U8)
{ {
memcpy(data, img->p[PIPI_PIXELS_RGBA_C].pixels,
memcpy(data, img->p[PIPI_PIXELS_RGBA_U8].pixels,
4 * img->w * img->h); 4 * img->w * img->h);
free(img->p[PIPI_PIXELS_RGBA_C].pixels);
free(img->p[PIPI_PIXELS_RGBA_U8].pixels);
} }


img->p[PIPI_PIXELS_RGBA_C].pixels = data;
img->p[PIPI_PIXELS_RGBA_C].w = imlib_image_get_width();
img->p[PIPI_PIXELS_RGBA_C].h = imlib_image_get_height();
img->p[PIPI_PIXELS_RGBA_C].pitch = 4 * imlib_image_get_width();
img->p[PIPI_PIXELS_RGBA_C].bpp = 32;
img->p[PIPI_PIXELS_RGBA_C].bytes = 4 * img->w * img->h;
img->p[PIPI_PIXELS_RGBA_U8].pixels = data;
img->p[PIPI_PIXELS_RGBA_U8].w = imlib_image_get_width();
img->p[PIPI_PIXELS_RGBA_U8].h = imlib_image_get_height();
img->p[PIPI_PIXELS_RGBA_U8].pitch = 4 * imlib_image_get_width();
img->p[PIPI_PIXELS_RGBA_U8].bpp = 32;
img->p[PIPI_PIXELS_RGBA_U8].bytes = 4 * img->w * img->h;


img->codec_priv = (void *)priv; img->codec_priv = (void *)priv;
img->codec_format = PIPI_PIXELS_RGBA_C;
img->codec_format = PIPI_PIXELS_RGBA_U8;
img->codec_free = pipi_free_imlib2; img->codec_free = pipi_free_imlib2;


img->wrap = 0; img->wrap = 0;


+ 11
- 11
pipi/codec/modular/jpeg.c View File

@@ -112,16 +112,16 @@ pipi_image_t *pipi_load_jpeg(const char *name)


img = pipi_new(cinfo.output_width, cinfo.output_height); img = pipi_new(cinfo.output_width, cinfo.output_height);


img->p[PIPI_PIXELS_RGBA_C].pixels = image;
img->p[PIPI_PIXELS_RGBA_C].w = cinfo.output_width;
img->p[PIPI_PIXELS_RGBA_C].h = cinfo.output_height;
img->p[PIPI_PIXELS_RGBA_C].pitch = cinfo.output_width*4;
img->p[PIPI_PIXELS_RGBA_C].bpp = 24;
img->p[PIPI_PIXELS_RGBA_C].bytes = 4 * img->w * img->h;
img->last_modified = PIPI_PIXELS_RGBA_C;
img->p[PIPI_PIXELS_RGBA_U8].pixels = image;
img->p[PIPI_PIXELS_RGBA_U8].w = cinfo.output_width;
img->p[PIPI_PIXELS_RGBA_U8].h = cinfo.output_height;
img->p[PIPI_PIXELS_RGBA_U8].pitch = cinfo.output_width*4;
img->p[PIPI_PIXELS_RGBA_U8].bpp = 24;
img->p[PIPI_PIXELS_RGBA_U8].bytes = 4 * img->w * img->h;
img->last_modified = PIPI_PIXELS_RGBA_U8;


img->codec_priv = (void *)&cinfo; img->codec_priv = (void *)&cinfo;
img->codec_format = PIPI_PIXELS_RGBA_C;
img->codec_format = PIPI_PIXELS_RGBA_U8;
img->codec_free = pipi_free_jpeg; img->codec_free = pipi_free_jpeg;


img->wrap = 0; img->wrap = 0;
@@ -143,7 +143,7 @@ int pipi_save_jpeg(pipi_image_t *img, const char *name)
unsigned char *data = NULL; unsigned char *data = NULL;
unsigned char *line = NULL; unsigned char *line = NULL;


pipi_pixels_t *pixels = pipi_get_pixels(img, PIPI_PIXELS_RGBA_C);
pipi_pixels_t *pixels = pipi_get_pixels(img, PIPI_PIXELS_RGBA_U8);


if (!pixels) if (!pixels)
return 0; return 0;
@@ -212,8 +212,8 @@ end:


static int pipi_free_jpeg(pipi_image_t *img) static int pipi_free_jpeg(pipi_image_t *img)
{ {
if(img->p[PIPI_PIXELS_RGBA_C].pixels)
free(img->p[PIPI_PIXELS_RGBA_C].pixels);
if(img->p[PIPI_PIXELS_RGBA_U8].pixels)
free(img->p[PIPI_PIXELS_RGBA_U8].pixels);
return 0; return 0;
} }




+ 18
- 18
pipi/codec/opencv.c View File

@@ -43,16 +43,16 @@ pipi_image_t *pipi_load_opencv(const char *name)


img = pipi_new(priv->width, priv->height); img = pipi_new(priv->width, priv->height);


img->p[PIPI_PIXELS_BGR_C].pixels = priv->imageData;
img->p[PIPI_PIXELS_BGR_C].w = priv->width;
img->p[PIPI_PIXELS_BGR_C].h = priv->height;
img->p[PIPI_PIXELS_BGR_C].pitch = priv->widthStep;
img->p[PIPI_PIXELS_BGR_C].bpp = 24;
img->p[PIPI_PIXELS_BGR_C].bytes = 3 * img->w * img->h;
img->last_modified = PIPI_PIXELS_BGR_C;
img->p[PIPI_PIXELS_BGR_U8].pixels = priv->imageData;
img->p[PIPI_PIXELS_BGR_U8].w = priv->width;
img->p[PIPI_PIXELS_BGR_U8].h = priv->height;
img->p[PIPI_PIXELS_BGR_U8].pitch = priv->widthStep;
img->p[PIPI_PIXELS_BGR_U8].bpp = 24;
img->p[PIPI_PIXELS_BGR_U8].bytes = 3 * img->w * img->h;
img->last_modified = PIPI_PIXELS_BGR_U8;


img->codec_priv = (void *)priv; img->codec_priv = (void *)priv;
img->codec_format = PIPI_PIXELS_BGR_C;
img->codec_format = PIPI_PIXELS_BGR_U8;
img->codec_free = pipi_free_opencv; img->codec_free = pipi_free_opencv;


img->wrap = 0; img->wrap = 0;
@@ -69,22 +69,22 @@ int pipi_save_opencv(pipi_image_t *img, const char *name)
IPL_DEPTH_8U, 3); IPL_DEPTH_8U, 3);


/* FIXME: check pitch differences here */ /* FIXME: check pitch differences here */
if(img->last_modified == PIPI_PIXELS_BGR_C)
if(img->last_modified == PIPI_PIXELS_BGR_U8)
{ {
memcpy(priv->imageData, img->p[PIPI_PIXELS_BGR_C].pixels,
memcpy(priv->imageData, img->p[PIPI_PIXELS_BGR_U8].pixels,
3 * img->w * img->h); 3 * img->w * img->h);
free(img->p[PIPI_PIXELS_BGR_C].pixels);
free(img->p[PIPI_PIXELS_BGR_U8].pixels);
} }


img->p[PIPI_PIXELS_BGR_C].pixels = priv->imageData;
img->p[PIPI_PIXELS_BGR_C].w = priv->width;
img->p[PIPI_PIXELS_BGR_C].h = priv->height;
img->p[PIPI_PIXELS_BGR_C].pitch = priv->widthStep;
img->p[PIPI_PIXELS_BGR_C].bpp = 24;
img->p[PIPI_PIXELS_BGR_C].bytes = 3 * img->w * img->h;
img->p[PIPI_PIXELS_BGR_U8].pixels = priv->imageData;
img->p[PIPI_PIXELS_BGR_U8].w = priv->width;
img->p[PIPI_PIXELS_BGR_U8].h = priv->height;
img->p[PIPI_PIXELS_BGR_U8].pitch = priv->widthStep;
img->p[PIPI_PIXELS_BGR_U8].bpp = 24;
img->p[PIPI_PIXELS_BGR_U8].bytes = 3 * img->w * img->h;


img->codec_priv = (void *)priv; img->codec_priv = (void *)priv;
img->codec_format = PIPI_PIXELS_BGR_C;
img->codec_format = PIPI_PIXELS_BGR_U8;
img->codec_free = pipi_free_opencv; img->codec_free = pipi_free_opencv;


img->wrap = 0; img->wrap = 0;


+ 2
- 2
pipi/codec/oric.c View File

@@ -64,7 +64,7 @@ pipi_image_t *pipi_load_oric(char const *name)
} }


img = pipi_new(WIDTH, HEIGHT); img = pipi_new(WIDTH, HEIGHT);
p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_C);
p = pipi_get_pixels(img, PIPI_PIXELS_RGBA_U8);
data = p->pixels; data = p->pixels;


for(y = 0; y < HEIGHT; y++) for(y = 0; y < HEIGHT; y++)
@@ -144,7 +144,7 @@ int pipi_save_oric(pipi_image_t *img, char const *name)
tmp = pipi_resize(img, WIDTH, HEIGHT); tmp = pipi_resize(img, WIDTH, HEIGHT);
else else
tmp = img; tmp = img;
p = pipi_get_pixels(tmp, PIPI_PIXELS_RGBA_F);
p = pipi_get_pixels(tmp, PIPI_PIXELS_RGBA_F32);
data = p->pixels; data = p->pixels;
screen = malloc(WIDTH * HEIGHT / 6); screen = malloc(WIDTH * HEIGHT / 6);
write_screen(data, screen); write_screen(data, screen);


+ 18
- 18
pipi/codec/sdl.c View File

@@ -48,16 +48,16 @@ pipi_image_t *pipi_load_sdl(const char *name)


img = pipi_new(priv->w, priv->h); img = pipi_new(priv->w, priv->h);


img->p[PIPI_PIXELS_RGBA_C].pixels = priv->pixels;
img->p[PIPI_PIXELS_RGBA_C].w = priv->w;
img->p[PIPI_PIXELS_RGBA_C].h = priv->h;
img->p[PIPI_PIXELS_RGBA_C].pitch = priv->pitch;
img->p[PIPI_PIXELS_RGBA_C].bpp = 32;
img->p[PIPI_PIXELS_RGBA_C].bytes = 4 * img->w * img->h;
img->last_modified = PIPI_PIXELS_RGBA_C;
img->p[PIPI_PIXELS_RGBA_U8].pixels = priv->pixels;
img->p[PIPI_PIXELS_RGBA_U8].w = priv->w;
img->p[PIPI_PIXELS_RGBA_U8].h = priv->h;
img->p[PIPI_PIXELS_RGBA_U8].pitch = priv->pitch;
img->p[PIPI_PIXELS_RGBA_U8].bpp = 32;
img->p[PIPI_PIXELS_RGBA_U8].bytes = 4 * img->w * img->h;
img->last_modified = PIPI_PIXELS_RGBA_U8;


img->codec_priv = (void *)priv; img->codec_priv = (void *)priv;
img->codec_format = PIPI_PIXELS_RGBA_C;
img->codec_format = PIPI_PIXELS_RGBA_U8;
img->codec_free = pipi_free_sdl; img->codec_free = pipi_free_sdl;


img->wrap = 0; img->wrap = 0;
@@ -73,22 +73,22 @@ int pipi_save_sdl(pipi_image_t *img, const char *name)
SDL_Surface *priv = create_32bpp_surface(img->w, img->h); SDL_Surface *priv = create_32bpp_surface(img->w, img->h);


/* FIXME: check pitch differences here */ /* FIXME: check pitch differences here */
if(img->last_modified == PIPI_PIXELS_RGBA_C)
if(img->last_modified == PIPI_PIXELS_RGBA_U8)
{ {
memcpy(priv->pixels, img->p[PIPI_PIXELS_RGBA_C].pixels,
memcpy(priv->pixels, img->p[PIPI_PIXELS_RGBA_U8].pixels,
priv->pitch * priv->h); priv->pitch * priv->h);
free(img->p[PIPI_PIXELS_RGBA_C].pixels);
free(img->p[PIPI_PIXELS_RGBA_U8].pixels);
} }


img->p[PIPI_PIXELS_RGBA_C].pixels = priv->pixels;
img->p[PIPI_PIXELS_RGBA_C].w = priv->w;
img->p[PIPI_PIXELS_RGBA_C].h = priv->h;
img->p[PIPI_PIXELS_RGBA_C].pitch = priv->pitch;
img->p[PIPI_PIXELS_RGBA_C].bpp = 32;
img->p[PIPI_PIXELS_RGBA_C].bytes = 4 * img->w * img->h;
img->p[PIPI_PIXELS_RGBA_U8].pixels = priv->pixels;
img->p[PIPI_PIXELS_RGBA_U8].w = priv->w;
img->p[PIPI_PIXELS_RGBA_U8].h = priv->h;
img->p[PIPI_PIXELS_RGBA_U8].pitch = priv->pitch;
img->p[PIPI_PIXELS_RGBA_U8].bpp = 32;
img->p[PIPI_PIXELS_RGBA_U8].bytes = 4 * img->w * img->h;


img->codec_priv = (void *)priv; img->codec_priv = (void *)priv;
img->codec_format = PIPI_PIXELS_RGBA_C;
img->codec_format = PIPI_PIXELS_RGBA_U8;
img->codec_free = pipi_free_sdl; img->codec_free = pipi_free_sdl;


img->wrap = 0; img->wrap = 0;


+ 3
- 3
pipi/combine/mean.c View File

@@ -37,12 +37,12 @@ pipi_image_t *pipi_mean(pipi_image_t *img1, pipi_image_t *img2)
h = img1->h; h = img1->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F);
img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F32);
img1data = (float *)img1p->pixels; img1data = (float *)img1p->pixels;
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F);
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F32);
img2data = (float *)img2p->pixels; img2data = (float *)img2p->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 6
- 6
pipi/combine/minmax.c View File

@@ -37,12 +37,12 @@ pipi_image_t *pipi_min(pipi_image_t *img1, pipi_image_t *img2)
h = img1->h; h = img1->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F);
img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F32);
img1data = (float *)img1p->pixels; img1data = (float *)img1p->pixels;
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F);
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F32);
img2data = (float *)img2p->pixels; img2data = (float *)img2p->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -86,12 +86,12 @@ pipi_image_t *pipi_max(pipi_image_t *img1, pipi_image_t *img2)
h = img1->h; h = img1->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F);
img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F32);
img1data = (float *)img1p->pixels; img1data = (float *)img1p->pixels;
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F);
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F32);
img2data = (float *)img2p->pixels; img2data = (float *)img2p->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 12
- 12
pipi/combine/mulscreen.c View File

@@ -37,12 +37,12 @@ pipi_image_t *pipi_multiply(pipi_image_t *img1, pipi_image_t *img2)
h = img1->h; h = img1->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F);
img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F32);
img1data = (float *)img1p->pixels; img1data = (float *)img1p->pixels;
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F);
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F32);
img2data = (float *)img2p->pixels; img2data = (float *)img2p->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -86,12 +86,12 @@ pipi_image_t *pipi_divide(pipi_image_t *img1, pipi_image_t *img2)
h = img1->h; h = img1->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F);
img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F32);
img1data = (float *)img1p->pixels; img1data = (float *)img1p->pixels;
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F);
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F32);
img2data = (float *)img2p->pixels; img2data = (float *)img2p->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -135,12 +135,12 @@ pipi_image_t *pipi_screen(pipi_image_t *img1, pipi_image_t *img2)
h = img1->h; h = img1->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F);
img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F32);
img1data = (float *)img1p->pixels; img1data = (float *)img1p->pixels;
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F);
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F32);
img2data = (float *)img2p->pixels; img2data = (float *)img2p->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -184,12 +184,12 @@ pipi_image_t *pipi_overlay(pipi_image_t *img1, pipi_image_t *img2)
h = img1->h; h = img1->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F);
img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F32);
img1data = (float *)img1p->pixels; img1data = (float *)img1p->pixels;
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F);
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F32);
img2data = (float *)img2p->pixels; img2data = (float *)img2p->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 10
- 10
pipi/combine/rgb.c View File

@@ -37,14 +37,14 @@ pipi_image_t *pipi_rgb(pipi_image_t *i1, pipi_image_t *i2, pipi_image_t *i3)
h = i1->h; h = i1->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


i1p = pipi_get_pixels(i1, PIPI_PIXELS_Y_F);
i1p = pipi_get_pixels(i1, PIPI_PIXELS_Y_F32);
i1data = (float *)i1p->pixels; i1data = (float *)i1p->pixels;
i2p = pipi_get_pixels(i2, PIPI_PIXELS_Y_F);
i2p = pipi_get_pixels(i2, PIPI_PIXELS_Y_F32);
i2data = (float *)i2p->pixels; i2data = (float *)i2p->pixels;
i3p = pipi_get_pixels(i3, PIPI_PIXELS_Y_F);
i3p = pipi_get_pixels(i3, PIPI_PIXELS_Y_F32);
i3data = (float *)i3p->pixels; i3data = (float *)i3p->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -72,10 +72,10 @@ pipi_image_t *pipi_red(pipi_image_t *src)
h = src->h; h = src->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


srcp = pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -96,10 +96,10 @@ pipi_image_t *pipi_green(pipi_image_t *src)
h = src->h; h = src->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


srcp = pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -120,10 +120,10 @@ pipi_image_t *pipi_blue(pipi_image_t *src)
h = src->h; h = src->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


srcp = pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 9
- 9
pipi/combine/subadd.c View File

@@ -38,12 +38,12 @@ pipi_image_t *pipi_add(pipi_image_t *img1, pipi_image_t *img2)
h = img1->h; h = img1->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F);
img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F32);
img1data = (float *)img1p->pixels; img1data = (float *)img1p->pixels;
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F);
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F32);
img2data = (float *)img2p->pixels; img2data = (float *)img2p->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -87,12 +87,12 @@ pipi_image_t *pipi_sub(pipi_image_t *img1, pipi_image_t *img2)
h = img1->h; h = img1->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F);
img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F32);
img1data = (float *)img1p->pixels; img1data = (float *)img1p->pixels;
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F);
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F32);
img2data = (float *)img2p->pixels; img2data = (float *)img2p->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -136,12 +136,12 @@ pipi_image_t *pipi_difference(pipi_image_t *img1, pipi_image_t *img2)
h = img1->h; h = img1->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F);
img1p = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_F32);
img1data = (float *)img1p->pixels; img1data = (float *)img1p->pixels;
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F);
img2p = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F32);
img2data = (float *)img2p->pixels; img2data = (float *)img2p->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 1
- 1
pipi/context.c View File

@@ -703,7 +703,7 @@ int pipi_command(pipi_context_t *ctx, char const *cmd, ...)
{ {
if(ctx->nimages < 1) if(ctx->nimages < 1)
return -1; return -1;
pipi_get_pixels(ctx->images[ctx->nimages - 1], PIPI_PIXELS_Y_F);
pipi_get_pixels(ctx->images[ctx->nimages - 1], PIPI_PIXELS_Y_F32);
} }
else if(!strcmp(cmd, "free")) else if(!strcmp(cmd, "free"))
{ {


+ 4
- 4
pipi/dither/dbs.c View File

@@ -69,20 +69,20 @@ pipi_image_t *pipi_dither_dbs(pipi_image_t *img)
memset(changelist, 0, cw * ch * sizeof(int)); memset(changelist, 0, cw * ch * sizeof(int));


src = pipi_copy(img); src = pipi_copy(img);
pipi_get_pixels(src, PIPI_PIXELS_Y_F);
pipi_get_pixels(src, PIPI_PIXELS_Y_F32);


tmp1 = pipi_convolution(src, NN, NN, kernel); tmp1 = pipi_convolution(src, NN, NN, kernel);
tmp1p = pipi_get_pixels(tmp1, PIPI_PIXELS_Y_F);
tmp1p = pipi_get_pixels(tmp1, PIPI_PIXELS_Y_F32);
tmp1data = (float *)tmp1p->pixels; tmp1data = (float *)tmp1p->pixels;


dst = pipi_dither_random(src); dst = pipi_dither_random(src);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


pipi_free(src); pipi_free(src);


tmp2 = pipi_convolution(dst, NN, NN, kernel); tmp2 = pipi_convolution(dst, NN, NN, kernel);
tmp2p = pipi_get_pixels(tmp2, PIPI_PIXELS_Y_F);
tmp2p = pipi_get_pixels(tmp2, PIPI_PIXELS_Y_F32);
tmp2data = (float *)tmp2p->pixels; tmp2data = (float *)tmp2p->pixels;


for(;;) for(;;)


+ 2
- 2
pipi/dither/ediff.c View File

@@ -41,10 +41,10 @@ pipi_image_t *pipi_dither_ediff(pipi_image_t *img, pipi_image_t *ker,
kh = ker->h; kh = ker->h;


dst = pipi_copy(img); dst = pipi_copy(img);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


kerp = pipi_get_pixels(ker, PIPI_PIXELS_Y_F);
kerp = pipi_get_pixels(ker, PIPI_PIXELS_Y_F32);
kerdata = (float *)kerp->pixels; kerdata = (float *)kerp->pixels;
for(kx = 0; kx < kw; kx++) for(kx = 0; kx < kw; kx++)
if(kerdata[kx] > 0) if(kerdata[kx] > 0)


+ 4
- 4
pipi/dither/ordered.c View File

@@ -63,10 +63,10 @@ pipi_image_t *pipi_dither_ordered_ext(pipi_image_t *img, pipi_image_t *kernel,
sint = sin(angle * (M_PI / 180)); sint = sin(angle * (M_PI / 180));


dst = pipi_copy(img); dst = pipi_copy(img);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


kernelp = pipi_get_pixels(kernel, PIPI_PIXELS_Y_F);
kernelp = pipi_get_pixels(kernel, PIPI_PIXELS_Y_F32);
kerneldata = (float *)kernelp->pixels; kerneldata = (float *)kernelp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -112,11 +112,11 @@ pipi_image_t *pipi_order(pipi_image_t *src)
h = src->h; h = src->h;
epsilon = 1. / (w * h + 1); epsilon = 1. / (w * h + 1);


srcp = pipi_get_pixels(src, PIPI_PIXELS_Y_F);
srcp = pipi_get_pixels(src, PIPI_PIXELS_Y_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


circle = malloc(w * h * sizeof(dot_t)); circle = malloc(w * h * sizeof(dot_t));


+ 1
- 1
pipi/dither/ostromoukhov.c View File

@@ -76,7 +76,7 @@ pipi_image_t *pipi_dither_ostromoukhov(pipi_image_t *img, pipi_scan_t scan)
h = img->h; h = img->h;


dst = pipi_copy(img); dst = pipi_copy(img);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 1
- 1
pipi/dither/random.c View File

@@ -33,7 +33,7 @@ pipi_image_t *pipi_dither_random(pipi_image_t *img)
h = img->h; h = img->h;


dst = pipi_copy(img); dst = pipi_copy(img);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_Y_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 5
- 5
pipi/filter/autocontrast.c View File

@@ -39,10 +39,10 @@ pipi_image_t *pipi_autocontrast(pipi_image_t *src)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -80,8 +80,8 @@ pipi_image_t *pipi_autocontrast(pipi_image_t *src)
t = 1. / (max - min); t = 1. / (max - min);


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 6
- 6
pipi/filter/blur.c View File

@@ -135,14 +135,14 @@ pipi_image_t *pipi_box_blur_ext(pipi_image_t *src, int m, int n)
{ {
if(src->wrap) if(src->wrap)
{ {
if(src->last_modified == PIPI_PIXELS_Y_F)
if(src->last_modified == PIPI_PIXELS_Y_F32)
return boxblur_gray_wrap(src, m, n); return boxblur_gray_wrap(src, m, n);


return boxblur_wrap(src, m, n); return boxblur_wrap(src, m, n);
} }
else else
{ {
if(src->last_modified == PIPI_PIXELS_Y_F)
if(src->last_modified == PIPI_PIXELS_Y_F32)
return boxblur_gray(src, m, n); return boxblur_gray(src, m, n);


return boxblur(src, m, n); return boxblur(src, m, n);
@@ -163,13 +163,13 @@ static pipi_image_t *T(boxblur)(pipi_image_t *src, int m, int n)
h = src->h; h = src->h;
size = (2 * m + 1) * (2 * n + 1); size = (2 * m + 1) * (2 * n + 1);


srcp = FLAG_GRAY ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = FLAG_GRAY ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = FLAG_GRAY ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = FLAG_GRAY ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


acc = malloc(w * (FLAG_GRAY ? 1 : 4) * sizeof(double)); acc = malloc(w * (FLAG_GRAY ? 1 : 4) * sizeof(double));


+ 20
- 20
pipi/filter/color.c View File

@@ -36,15 +36,15 @@ pipi_image_t *pipi_brightness(pipi_image_t *src, double val)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


if(val >= 0.0) if(val >= 0.0)
@@ -117,15 +117,15 @@ pipi_image_t *pipi_contrast(pipi_image_t *src, double val)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


if(val >= 0.0) if(val >= 0.0)
@@ -208,15 +208,15 @@ pipi_image_t *pipi_invert(pipi_image_t *src)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -252,15 +252,15 @@ pipi_image_t *pipi_threshold(pipi_image_t *src, double val)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 10
- 10
pipi/filter/convolution.c View File

@@ -70,7 +70,7 @@ pipi_image_t *pipi_convolution(pipi_image_t *src, int m, int n, double mat[])


if(fabs(p - q) > 0.0001 * 0.0001) if(fabs(p - q) > 0.0001 * 0.0001)
{ {
if(src->last_modified == PIPI_PIXELS_Y_F)
if(src->last_modified == PIPI_PIXELS_Y_F32)
{ {
if(src->wrap) if(src->wrap)
return conv_gray_wrap(src, m, n, mat); return conv_gray_wrap(src, m, n, mat);
@@ -96,7 +96,7 @@ pipi_image_t *pipi_convolution(pipi_image_t *src, int m, int n, double mat[])
for(j = 0; j < n; j++) for(j = 0; j < n; j++)
vvec[j] = mat[j * m + besti] / tmp; vvec[j] = mat[j * m + besti] / tmp;


if(src->last_modified == PIPI_PIXELS_Y_F)
if(src->last_modified == PIPI_PIXELS_Y_F32)
ret = src->wrap ? sepconv_gray_wrap(src, m, hvec, n, vvec) ret = src->wrap ? sepconv_gray_wrap(src, m, hvec, n, vvec)
: sepconv_gray(src, m, hvec, n, vvec); : sepconv_gray(src, m, hvec, n, vvec);
else else
@@ -121,13 +121,13 @@ static pipi_image_t *T(conv)(pipi_image_t *src, int m, int n, double mat[])
w = src->w; w = src->w;
h = src->h; h = src->h;


srcp = FLAG_GRAY ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = FLAG_GRAY ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = FLAG_GRAY ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = FLAG_GRAY ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -189,13 +189,13 @@ static pipi_image_t *T(sepconv)(pipi_image_t *src,
w = src->w; w = src->w;
h = src->h; h = src->h;


srcp = FLAG_GRAY ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = FLAG_GRAY ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = FLAG_GRAY ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = FLAG_GRAY ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


buffer = malloc(w * h * (FLAG_GRAY ? 1 : 4) * sizeof(double)); buffer = malloc(w * h * (FLAG_GRAY ? 1 : 4) * sizeof(double));


+ 10
- 10
pipi/filter/dilate.c View File

@@ -40,15 +40,15 @@ pipi_image_t *pipi_dilate(pipi_image_t *src)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -109,15 +109,15 @@ pipi_image_t *pipi_erode(pipi_image_t *src)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 5
- 5
pipi/filter/median.c View File

@@ -55,15 +55,15 @@ pipi_image_t *pipi_median_ext(pipi_image_t *src, int rx, int ry)
h = src->h; h = src->h;
size = (2 * rx + 1) * (2 * ry + 1); size = (2 * rx + 1) * (2 * ry + 1);


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


list = malloc(size * (gray ? 1 : 4) * sizeof(double)); list = malloc(size * (gray ? 1 : 4) * sizeof(double));


+ 25
- 25
pipi/filter/transform.c View File

@@ -36,15 +36,15 @@ pipi_image_t *pipi_hflip(pipi_image_t *src)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -82,15 +82,15 @@ pipi_image_t *pipi_vflip(pipi_image_t *src)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -122,15 +122,15 @@ pipi_image_t *pipi_rotate90(pipi_image_t *src)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(h, w); dst = pipi_new(h, w);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -168,15 +168,15 @@ pipi_image_t *pipi_rotate180(pipi_image_t *src)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)
@@ -214,15 +214,15 @@ pipi_image_t *pipi_rotate270(pipi_image_t *src)
w = src->w; w = src->w;
h = src->h; h = src->h;


gray = (src->last_modified == PIPI_PIXELS_Y_F);
gray = (src->last_modified == PIPI_PIXELS_Y_F32);


srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = gray ? pipi_get_pixels(src, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(h, w); dst = pipi_new(h, w);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 1
- 1
pipi/paint/bezier.c View File

@@ -34,7 +34,7 @@ int pipi_draw_bezier4(pipi_image_t *img ,
int x4, int y4, int x4, int y4,
uint32_t c, int n, int aa) uint32_t c, int n, int aa)
{ {
if(img->last_modified == PIPI_PIXELS_RGBA_C)
if(img->last_modified == PIPI_PIXELS_RGBA_U8)
{ {
float t; float t;
float x= x1, y= y1; float x= x1, y= y1;


+ 5
- 5
pipi/paint/floodfill.c View File

@@ -77,12 +77,12 @@ int pipi_flood_fill(pipi_image_t *src,
(px < 0) || (py < 0)) return -1; (px < 0) || (py < 0)) return -1;




if(src->last_modified == PIPI_PIXELS_RGBA_C) {
if(src->last_modified == PIPI_PIXELS_RGBA_U8) {
uint32_t *dstdata; uint32_t *dstdata;
unsigned char nr, ng, nb, na; unsigned char nr, ng, nb, na;


/* Get ARGB32 pointer */ /* Get ARGB32 pointer */
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_C);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_U8);
dstdata = (uint32_t *)dstp->pixels; dstdata = (uint32_t *)dstp->pixels;


nr = r*255.0f; nr = r*255.0f;
@@ -95,12 +95,12 @@ int pipi_flood_fill(pipi_image_t *src,
pipi_flood_fill_stack_scanline_u32(dstp, px, py, (na<<24)|(nr<<16)|(ng<<8)|(nb), dstdata[px+py*w]); pipi_flood_fill_stack_scanline_u32(dstp, px, py, (na<<24)|(nr<<16)|(ng<<8)|(nb), dstdata[px+py*w]);


} else { } else {
int gray = (dst->last_modified == PIPI_PIXELS_Y_F);
int gray = (dst->last_modified == PIPI_PIXELS_Y_F32);
float *dstdata; float *dstdata;
float or, og, ob, oa; float or, og, ob, oa;


dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = gray ? pipi_get_pixels(dst, PIPI_PIXELS_Y_F32)
: pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);


dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;




+ 6
- 6
pipi/paint/line.c View File

@@ -67,12 +67,12 @@ int pipi_draw_line(pipi_image_t *img , int xa, int ya, int xb, int yb, uint32_t




/* No Transparency routine for u32 yet, fallback to float version */ /* No Transparency routine for u32 yet, fallback to float version */
if(img->last_modified == PIPI_PIXELS_RGBA_C)
if(img->last_modified == PIPI_PIXELS_RGBA_U8)
{ {
if(!aa) if(!aa)
{ {
uint32_t *dstdata; uint32_t *dstdata;
dstdata = (uint32_t *)pipi_get_pixels(img, PIPI_PIXELS_RGBA_C)->pixels;
dstdata = (uint32_t *)pipi_get_pixels(img, PIPI_PIXELS_RGBA_U8)->pixels;
s.color32 = c; s.color32 = c;
s.buf_u32 = dstdata; s.buf_u32 = dstdata;
s.draw = line_8bit; s.draw = line_8bit;
@@ -80,7 +80,7 @@ int pipi_draw_line(pipi_image_t *img , int xa, int ya, int xb, int yb, uint32_t
else else
{ {
float *dstdata; float *dstdata;
dstdata = (float *)pipi_get_pixels(img, PIPI_PIXELS_RGBA_F)->pixels;
dstdata = (float *)pipi_get_pixels(img, PIPI_PIXELS_RGBA_F32)->pixels;
s.colorf[2] = ((c&0x00FF0000)>>16)/255.0f; /* XXX FIXME */ s.colorf[2] = ((c&0x00FF0000)>>16)/255.0f; /* XXX FIXME */
s.colorf[1] = ((c&0x0000FF00)>>8)/255.0f; /* XXX FIXME */ s.colorf[1] = ((c&0x0000FF00)>>8)/255.0f; /* XXX FIXME */
s.colorf[0] = (c&0x000000FF)/255.0f; /* XXX FIXME */ s.colorf[0] = (c&0x000000FF)/255.0f; /* XXX FIXME */
@@ -88,10 +88,10 @@ int pipi_draw_line(pipi_image_t *img , int xa, int ya, int xb, int yb, uint32_t
s.draw = aaline; s.draw = aaline;
} }
} }
else if(img->last_modified == PIPI_PIXELS_Y_F)
else if(img->last_modified == PIPI_PIXELS_Y_F32)
{ {
float *dstdata; float *dstdata;
dstdata = (float *)pipi_get_pixels(img, PIPI_PIXELS_Y_F)->pixels;
dstdata = (float *)pipi_get_pixels(img, PIPI_PIXELS_Y_F32)->pixels;
s.colorf[0] = (c & 0xff) / 255.0f; /* XXX FIXME */ s.colorf[0] = (c & 0xff) / 255.0f; /* XXX FIXME */
s.buf_f = dstdata; s.buf_f = dstdata;
s.draw = aa ? aaline_gray : line_gray; s.draw = aa ? aaline_gray : line_gray;
@@ -99,7 +99,7 @@ int pipi_draw_line(pipi_image_t *img , int xa, int ya, int xb, int yb, uint32_t
else else
{ {
float *dstdata; float *dstdata;
dstdata = (float *)pipi_get_pixels(img, PIPI_PIXELS_RGBA_F)->pixels;
dstdata = (float *)pipi_get_pixels(img, PIPI_PIXELS_RGBA_F32)->pixels;
s.colorf[2] = ((c&0x00FF0000)>>16)/255.0f; /* XXX FIXME */ s.colorf[2] = ((c&0x00FF0000)>>16)/255.0f; /* XXX FIXME */
s.colorf[1] = ((c&0x0000FF00)>>8)/255.0f; /* XXX FIXME */ s.colorf[1] = ((c&0x0000FF00)>>8)/255.0f; /* XXX FIXME */
s.colorf[0] = (c&0x000000FF)/255.0f; /* XXX FIXME */ s.colorf[0] = (c&0x000000FF)/255.0f; /* XXX FIXME */


+ 2
- 2
pipi/paint/tile.c View File

@@ -34,10 +34,10 @@ pipi_image_t *pipi_tile(pipi_image_t *tile, int w, int h)
th = tile->h; th = tile->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


tilep = pipi_get_pixels(tile, PIPI_PIXELS_RGBA_F);
tilep = pipi_get_pixels(tile, PIPI_PIXELS_RGBA_F32);
tiledata = (float *)tilep->pixels; tiledata = (float *)tilep->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 7
- 7
pipi/pipi.h View File

@@ -45,18 +45,18 @@ typedef enum
pipi_scan_t; pipi_scan_t;


/* pipi_format_t: this enum is a list of all possible pixel formats for /* pipi_format_t: this enum is a list of all possible pixel formats for
* our internal images. RGBA32 is the most usual format when an image has
* just been loaded, but RGBA_F is a lot better for complex operations. */
* our internal images. RGBA_U8 is the most usual format when an image has
* just been loaded, but RGBA_F32 is a lot better for complex operations. */
typedef enum typedef enum
{ {
PIPI_PIXELS_UNINITIALISED = -1, PIPI_PIXELS_UNINITIALISED = -1,


PIPI_PIXELS_RGBA_C = 0,
PIPI_PIXELS_BGR_C = 1,
PIPI_PIXELS_RGBA_F = 2,
PIPI_PIXELS_Y_F = 3,
PIPI_PIXELS_RGBA_U8 = 0,
PIPI_PIXELS_BGR_U8 = 1,
PIPI_PIXELS_RGBA_F32 = 2,
PIPI_PIXELS_Y_F32 = 3,


PIPI_PIXELS_MASK_C = 4,
PIPI_PIXELS_MASK_U8 = 4,


PIPI_PIXELS_MAX = 5 PIPI_PIXELS_MAX = 5
} }


+ 37
- 37
pipi/pixels.c View File

@@ -48,41 +48,41 @@ pipi_pixels_t *pipi_get_pixels(pipi_image_t *img, pipi_format_t type)
return &img->p[type]; return &img->p[type];


/* Handle special cases */ /* Handle special cases */
if(type == PIPI_PIXELS_MASK_C)
if(type == PIPI_PIXELS_MASK_U8)
return &img->p[type]; return &img->p[type];


/* Preliminary conversions */ /* Preliminary conversions */
if(img->last_modified == PIPI_PIXELS_RGBA_C
&& type == PIPI_PIXELS_Y_F)
pipi_get_pixels(img, PIPI_PIXELS_RGBA_F);
else if(img->last_modified == PIPI_PIXELS_BGR_C
&& type == PIPI_PIXELS_Y_F)
pipi_get_pixels(img, PIPI_PIXELS_RGBA_F);
else if(img->last_modified == PIPI_PIXELS_Y_F
&& type == PIPI_PIXELS_RGBA_C)
pipi_get_pixels(img, PIPI_PIXELS_RGBA_F);
else if(img->last_modified == PIPI_PIXELS_Y_F
&& type == PIPI_PIXELS_BGR_C)
pipi_get_pixels(img, PIPI_PIXELS_RGBA_F);
if(img->last_modified == PIPI_PIXELS_RGBA_U8
&& type == PIPI_PIXELS_Y_F32)
pipi_get_pixels(img, PIPI_PIXELS_RGBA_F32);
else if(img->last_modified == PIPI_PIXELS_BGR_U8
&& type == PIPI_PIXELS_Y_F32)
pipi_get_pixels(img, PIPI_PIXELS_RGBA_F32);
else if(img->last_modified == PIPI_PIXELS_Y_F32
&& type == PIPI_PIXELS_RGBA_U8)
pipi_get_pixels(img, PIPI_PIXELS_RGBA_F32);
else if(img->last_modified == PIPI_PIXELS_Y_F32
&& type == PIPI_PIXELS_BGR_U8)
pipi_get_pixels(img, PIPI_PIXELS_RGBA_F32);


/* Allocate pixels if necessary */ /* Allocate pixels if necessary */
if(!img->p[type].pixels) if(!img->p[type].pixels)
{ {
switch(type) switch(type)
{ {
case PIPI_PIXELS_RGBA_C:
case PIPI_PIXELS_RGBA_U8:
bytes = img->w * img->h * 4 * sizeof(uint8_t); bytes = img->w * img->h * 4 * sizeof(uint8_t);
bpp = 4 * sizeof(uint8_t); bpp = 4 * sizeof(uint8_t);
break; break;
case PIPI_PIXELS_BGR_C:
case PIPI_PIXELS_BGR_U8:
bytes = img->w * img->h * 3 * sizeof(uint8_t); bytes = img->w * img->h * 3 * sizeof(uint8_t);
bpp = 3 * sizeof(uint8_t); bpp = 3 * sizeof(uint8_t);
break; break;
case PIPI_PIXELS_RGBA_F:
case PIPI_PIXELS_RGBA_F32:
bytes = img->w * img->h * 4 * sizeof(float); bytes = img->w * img->h * 4 * sizeof(float);
bpp = 4 * sizeof(float); bpp = 4 * sizeof(float);
break; break;
case PIPI_PIXELS_Y_F:
case PIPI_PIXELS_Y_F32:
bytes = img->w * img->h * sizeof(float); bytes = img->w * img->h * sizeof(float);
bpp = sizeof(float); bpp = sizeof(float);
break; break;
@@ -98,10 +98,10 @@ pipi_pixels_t *pipi_get_pixels(pipi_image_t *img, pipi_format_t type)
} }


/* Convert pixels */ /* Convert pixels */
if(img->last_modified == PIPI_PIXELS_RGBA_C
&& type == PIPI_PIXELS_RGBA_F)
if(img->last_modified == PIPI_PIXELS_RGBA_U8
&& type == PIPI_PIXELS_RGBA_F32)
{ {
uint8_t *src = (uint8_t *)img->p[PIPI_PIXELS_RGBA_C].pixels;
uint8_t *src = (uint8_t *)img->p[PIPI_PIXELS_RGBA_U8].pixels;
float *dest = (float *)img->p[type].pixels; float *dest = (float *)img->p[type].pixels;


init_tables(); init_tables();
@@ -112,10 +112,10 @@ pipi_pixels_t *pipi_get_pixels(pipi_image_t *img, pipi_format_t type)
dest[4 * (y * img->w + x) + i] dest[4 * (y * img->w + x) + i]
= u8tof32(src[4 * (y * img->w + x) + i]); = u8tof32(src[4 * (y * img->w + x) + i]);
} }
else if(img->last_modified == PIPI_PIXELS_BGR_C
&& type == PIPI_PIXELS_RGBA_F)
else if(img->last_modified == PIPI_PIXELS_BGR_U8
&& type == PIPI_PIXELS_RGBA_F32)
{ {
uint8_t *src = (uint8_t *)img->p[PIPI_PIXELS_BGR_C].pixels;
uint8_t *src = (uint8_t *)img->p[PIPI_PIXELS_BGR_U8].pixels;
float *dest = (float *)img->p[type].pixels; float *dest = (float *)img->p[type].pixels;


init_tables(); init_tables();
@@ -132,10 +132,10 @@ pipi_pixels_t *pipi_get_pixels(pipi_image_t *img, pipi_format_t type)
dest[4 * (y * img->w + x) + 3] = 1.0; dest[4 * (y * img->w + x) + 3] = 1.0;
} }
} }
else if(img->last_modified == PIPI_PIXELS_RGBA_F
&& type == PIPI_PIXELS_RGBA_C)
else if(img->last_modified == PIPI_PIXELS_RGBA_F32
&& type == PIPI_PIXELS_RGBA_U8)
{ {
float *src = (float *)img->p[PIPI_PIXELS_RGBA_F].pixels;
float *src = (float *)img->p[PIPI_PIXELS_RGBA_F32].pixels;
uint8_t *dest = (uint8_t *)img->p[type].pixels; uint8_t *dest = (uint8_t *)img->p[type].pixels;


init_tables(); init_tables();
@@ -168,10 +168,10 @@ pipi_pixels_t *pipi_get_pixels(pipi_image_t *img, pipi_format_t type)
} }
} }
} }
else if(img->last_modified == PIPI_PIXELS_RGBA_F
&& type == PIPI_PIXELS_BGR_C)
else if(img->last_modified == PIPI_PIXELS_RGBA_F32
&& type == PIPI_PIXELS_BGR_U8)
{ {
float *src = (float *)img->p[PIPI_PIXELS_RGBA_F].pixels;
float *src = (float *)img->p[PIPI_PIXELS_RGBA_F32].pixels;
uint8_t *dest = (uint8_t *)img->p[type].pixels; uint8_t *dest = (uint8_t *)img->p[type].pixels;


init_tables(); init_tables();
@@ -204,11 +204,11 @@ pipi_pixels_t *pipi_get_pixels(pipi_image_t *img, pipi_format_t type)
} }
} }
} }
else if(img->last_modified == PIPI_PIXELS_Y_F
&& type == PIPI_PIXELS_RGBA_F)
else if(img->last_modified == PIPI_PIXELS_Y_F32
&& type == PIPI_PIXELS_RGBA_F32)
{ {
float *src = (float *)img->p[PIPI_PIXELS_Y_F].pixels;
float *dest = (float *)img->p[PIPI_PIXELS_RGBA_F].pixels;
float *src = (float *)img->p[PIPI_PIXELS_Y_F32].pixels;
float *dest = (float *)img->p[PIPI_PIXELS_RGBA_F32].pixels;


init_tables(); init_tables();


@@ -222,11 +222,11 @@ pipi_pixels_t *pipi_get_pixels(pipi_image_t *img, pipi_format_t type)
dest[4 * (y * img->w + x) + 3] = 1.0; dest[4 * (y * img->w + x) + 3] = 1.0;
} }
} }
else if(img->last_modified == PIPI_PIXELS_RGBA_F
&& type == PIPI_PIXELS_Y_F)
else if(img->last_modified == PIPI_PIXELS_RGBA_F32
&& type == PIPI_PIXELS_Y_F32)
{ {
float *src = (float *)img->p[PIPI_PIXELS_RGBA_F].pixels;
float *dest = (float *)img->p[PIPI_PIXELS_Y_F].pixels;
float *src = (float *)img->p[PIPI_PIXELS_RGBA_F32].pixels;
float *dest = (float *)img->p[PIPI_PIXELS_Y_F32].pixels;


init_tables(); init_tables();




+ 2
- 2
pipi/quantize/reduce.c View File

@@ -378,14 +378,14 @@ pipi_image_t *pipi_reduce(pipi_image_t *src,
debug("### PROCESSING IMAGE ###"); debug("### PROCESSING IMAGE ###");
debug(""); debug("");


srcp = pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


w = srcp->w; w = srcp->w;
h = srcp->h; h = srcp->h;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


for(j = 0; j < h; j++) for(j = 0; j < h; j++)


+ 1
- 1
pipi/render/noise.c View File

@@ -34,7 +34,7 @@ pipi_image_t *pipi_render_random(int w, int h)
int x, y, t; int x, y, t;


ret = pipi_new(w, h); ret = pipi_new(w, h);
pix = pipi_get_pixels(ret, PIPI_PIXELS_RGBA_F);
pix = pipi_get_pixels(ret, PIPI_PIXELS_RGBA_F32);
data = (float *)pix->pixels; data = (float *)pix->pixels;


for(y = 0; y < h; y++) for(y = 0; y < h; y++)


+ 5
- 5
pipi/render/screen.c View File

@@ -23,9 +23,9 @@
#include <string.h> #include <string.h>
#include <math.h> #include <math.h>


#ifndef M_PI
# define M_PI 3.14159265358979323846
#endif
#ifndef M_PI
# define M_PI 3.14159265358979323846
#endif


#include "pipi.h" #include "pipi.h"
#include "pipi_internals.h" #include "pipi_internals.h"
@@ -44,7 +44,7 @@ pipi_image_t *pipi_render_bayer(int w, int h)
; ;


ret = pipi_new(w, h); ret = pipi_new(w, h);
pix = pipi_get_pixels(ret, PIPI_PIXELS_Y_F);
pix = pipi_get_pixels(ret, PIPI_PIXELS_Y_F32);
data = (float *)pix->pixels; data = (float *)pix->pixels;


for(j = 0; j < h; j++) for(j = 0; j < h; j++)
@@ -107,7 +107,7 @@ pipi_image_t *pipi_render_halftone(int w, int h)
qsort(circle, w * h, sizeof(dot_t), cmpdot); qsort(circle, w * h, sizeof(dot_t), cmpdot);


ret = pipi_new(w * 2, h * 2); ret = pipi_new(w * 2, h * 2);
pix = pipi_get_pixels(ret, PIPI_PIXELS_Y_F);
pix = pipi_get_pixels(ret, PIPI_PIXELS_Y_F32);
data = (float *)pix->pixels; data = (float *)pix->pixels;


for(n = 0; n < w * h; n++) for(n = 0; n < w * h; n++)


+ 2
- 2
pipi/resize.c View File

@@ -31,11 +31,11 @@ pipi_image_t *pipi_resize(pipi_image_t *src, int w, int h)
pipi_pixels_t *srcp, *dstp; pipi_pixels_t *srcp, *dstp;
int x, y, x0, y0, sw, dw, sh, dh, remy; int x, y, x0, y0, sw, dw, sh, dh, remy;


srcp = pipi_get_pixels(src, PIPI_PIXELS_RGBA_F);
srcp = pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32);
srcdata = (float *)srcp->pixels; srcdata = (float *)srcp->pixels;


dst = pipi_new(w, h); dst = pipi_new(w, h);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F);
dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32);
dstdata = (float *)dstp->pixels; dstdata = (float *)dstp->pixels;


sw = src->w; sh = src->h; sw = src->w; sh = src->h;


+ 1
- 1
pipi/stock.c View File

@@ -173,7 +173,7 @@ pipi_image_t *pipi_load_stock(char const *name)
return NULL; return NULL;


ret = pipi_new(w, h); ret = pipi_new(w, h);
pix = pipi_get_pixels(ret, PIPI_PIXELS_Y_F);
pix = pipi_get_pixels(ret, PIPI_PIXELS_Y_F32);
memcpy(pix->pixels, ker, w * h * sizeof(float)); memcpy(pix->pixels, ker, w * h * sizeof(float));


return ret; return ret;


+ 4
- 4
pipi/tiles.c View File

@@ -87,12 +87,12 @@ pipi_tile_t *pipi_create_tile(pipi_format_t fmt, int plane)


switch(fmt) switch(fmt)
{ {
case PIPI_PIXELS_RGBA_C:
case PIPI_PIXELS_BGR_C:
case PIPI_PIXELS_RGBA_U8:
case PIPI_PIXELS_BGR_U8:
bytes = sizeof(uint8_t) * TILE_SIZE * TILE_SIZE; bytes = sizeof(uint8_t) * TILE_SIZE * TILE_SIZE;
break; break;
case PIPI_PIXELS_RGBA_F:
case PIPI_PIXELS_Y_F:
case PIPI_PIXELS_RGBA_F32:
case PIPI_PIXELS_Y_F32:
bytes = sizeof(float) * TILE_SIZE * TILE_SIZE; bytes = sizeof(float) * TILE_SIZE * TILE_SIZE;
break; break;
default: default:


+ 3
- 3
test/u8tof32tou8.c View File

@@ -34,11 +34,11 @@ int main(int argc, char *argv[])
img1 = pipi_load("mona.png"); img1 = pipi_load("mona.png");
img2 = pipi_load("mona.png"); img2 = pipi_load("mona.png");


pix1 = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_C);
pix1 = pipi_get_pixels(img1, PIPI_PIXELS_RGBA_U8);
data1 = (uint32_t *)pix1->pixels; data1 = (uint32_t *)pix1->pixels;


pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F);
pix2 = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_C);
pipi_get_pixels(img2, PIPI_PIXELS_RGBA_F32);
pix2 = pipi_get_pixels(img2, PIPI_PIXELS_RGBA_U8);
data2 = (uint32_t *)pix2->pixels; data2 = (uint32_t *)pix2->pixels;


for(y = 0; y < pix1->h; y++) for(y = 0; y < pix1->h; y++)


Loading…
Cancel
Save