@@ -22,9 +22,7 @@ Image: | |||
· analysis/measure.cpp | |||
· codec/coreimage.cpp | |||
· codec/coreimage.h | |||
· codec.cpp | |||
· codec/jpeg.cpp | |||
· colorstring.cpp | |||
· combine/blit.cpp | |||
· combine/merge.cpp | |||
· combine/minmax.cpp | |||
@@ -39,7 +37,6 @@ Image: | |||
· paint/bezier.cpp | |||
· paint/floodfill.cpp | |||
· paint/line.cpp | |||
· paint/rectangle.cpp | |||
· quantize/reduce.cpp | |||
· sequence.cpp | |||
@@ -1,124 +0,0 @@ | |||
/* | |||
* libpipi Pathetic image processing interface library | |||
* Copyright (c) 2004-2008 Sam Hocevar <sam@zoy.org> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library is free software. It comes without any warranty, to | |||
* the extent permitted by applicable law. You can redistribute it | |||
* and/or modify it under the terms of the Do What The Fuck You Want | |||
* To Public License, Version 2, as published by Sam Hocevar. See | |||
* http://sam.zoy.org/wtfpl/COPYING for more details. | |||
*/ | |||
/* | |||
* codec.c: image I/O functions | |||
*/ | |||
#include "config.h" | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
#include <string.h> | |||
#include "pipi.h" | |||
#include "pipi-internals.h" | |||
pipi_image_t *pipi_load(char const *name) | |||
{ | |||
pipi_image_t *ret = NULL; | |||
if(!strncmp(name, "random:", 7) || | |||
!strncmp(name, "ediff:", 6) || | |||
!strncmp(name, "halftone:", 6) || | |||
!strncmp(name, "bayer:", 6)) | |||
ret = pipi_load_stock(name); | |||
if(!ret) | |||
ret = pipi_load_oric(name); | |||
#if USE_JPEG | |||
if(!ret) | |||
ret = pipi_load_jpeg(name); | |||
#endif | |||
#if USE_IMLIB2 | |||
if(!ret) | |||
ret = pipi_load_imlib2(name); | |||
#endif | |||
#if USE_OPENCV | |||
if(!ret) | |||
ret = pipi_load_opencv(name); | |||
#endif | |||
#if USE_SDL | |||
if(!ret) | |||
ret = pipi_load_sdl(name); | |||
#endif | |||
#if USE_GDIPLUS | |||
if(!ret) | |||
ret = pipi_load_gdiplus(name); | |||
#endif | |||
#if USE_GDI | |||
if(!ret) | |||
ret = pipi_load_gdi(name); | |||
#endif | |||
#if USE_COCOA | |||
if(!ret) | |||
ret = pipi_load_coreimage(name); | |||
#endif | |||
return ret; | |||
} | |||
void pipi_free(pipi_image_t *img) | |||
{ | |||
int i; | |||
for(i = 0; i < PIPI_PIXELS_MAX; i++) | |||
if(i != img->codec_format && img->p[i].pixels) | |||
free(img->p[i].pixels); | |||
if(img->codec_priv) | |||
img->codec_free(img); | |||
free(img); | |||
} | |||
int pipi_save(pipi_image_t *img, const char *name) | |||
{ | |||
int ret = -1; | |||
if(ret < 0) | |||
ret = pipi_save_oric(img, name); | |||
#if USE_JPEG | |||
if(ret < 0) | |||
ret = pipi_save_jpeg(img, name); | |||
#endif | |||
#if USE_IMLIB2 | |||
if(ret < 0) | |||
ret = pipi_save_imlib2(img, name); | |||
#endif | |||
#if USE_OPENCV | |||
if(ret < 0) | |||
ret = pipi_save_opencv(img, name); | |||
#endif | |||
#if USE_SDL | |||
if(ret < 0) | |||
ret = pipi_save_sdl(img, name); | |||
#endif | |||
#if USE_GDIPLUS | |||
if(ret < 0) | |||
ret = pipi_save_gdiplus(img, name); | |||
#endif | |||
#if USE_GDI | |||
if(ret < 0) | |||
ret = pipi_save_gdi(img, name); | |||
#endif | |||
#if USE_COCOA | |||
if(ret < 0) | |||
ret = pipi_save_coreimage(img, name); | |||
#endif | |||
return ret; | |||
} | |||
@@ -1,127 +0,0 @@ | |||
/* | |||
* libpipi Pathetic image processing interface library | |||
* Copyright (c) 2004-2008 Sam Hocevar <sam@zoy.org> | |||
* 2008 Jean-Yves Lamoureux <jylam@lnxscene.org | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library is free software. It comes without any warranty, to | |||
* the extent permitted by applicable law. You can redistribute it | |||
* and/or modify it under the terms of the Do What The Fuck You Want | |||
* To Public License, Version 2, as published by Sam Hocevar. See | |||
* http://sam.zoy.org/wtfpl/COPYING for more details. | |||
*/ | |||
/* | |||
* colorstring.c: color from string functions | |||
*/ | |||
#include "config.h" | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
#include <stdarg.h> | |||
#include <string.h> | |||
#include "pipi.h" | |||
#include "pipi-internals.h" | |||
struct color_table | |||
{ | |||
char name[255]; | |||
float a,r,g,b; | |||
}; | |||
struct color_table color_table[] = | |||
{ | |||
{ "black" , 1, 0, 0, 0 }, | |||
{ "white" , 1, 1, 1, 1 }, | |||
{ "red" , 1, 1, 0, 0 }, | |||
{ "green" , 1, 0, 1, 0 }, | |||
{ "blue" , 1, 0, 0, 1 }, | |||
{ "yellow" , 1, 1, 1, 0 }, | |||
{ "cyan" , 1, 0, 1, 1 }, | |||
{ "magenta", 1, 1, 0, 1 }, | |||
{ "grey" , 1, 0.5, 0.5, 0.5 }, | |||
{ "gray" , 1, 0.5, 0.5, 0.5 }, | |||
{ "grey50" , 1, 0.5, 0.5, 0.5 }, | |||
{ "gray50" , 1, 0.5, 0.5, 0.5 }, | |||
{ "grey25" , 1, 0.25, 0.25, 0.25 }, | |||
{ "gray25" , 1, 0.25, 0.25, 0.25 }, | |||
}; | |||
pipi_pixel_t *pipi_get_color_from_string(const char* s) | |||
{ | |||
pipi_pixel_t *color; | |||
if(!s) return NULL; | |||
color = malloc(sizeof(pipi_pixel_t)); | |||
if(s[0] == '#') | |||
{ | |||
uint32_t c = 0; | |||
sscanf(s, "%x", &c); | |||
color->pixel_float.a = ((c&0xFF000000)>>24) / 255.0f; | |||
color->pixel_float.r = ((c&0x00FF0000)>>16) / 255.0f; | |||
color->pixel_float.g = ((c&0x0000FF00)>>8) / 255.0f; | |||
color->pixel_float.b = ((c&0x000000FF)>>0) / 255.0f; | |||
} | |||
else if(!strncmp(s, "rgb(", 4)) | |||
{ | |||
uint32_t r ,g ,b; | |||
sscanf(s, "rgb(%u,%u,%u)", &r, &g, &b); | |||
color->pixel_float.r = r / 255.0f; | |||
color->pixel_float.g = g / 255.0f; | |||
color->pixel_float.b = b / 255.0f; | |||
} | |||
else if(!strncmp(s, "frgb(", 5)) | |||
{ | |||
float r ,g ,b; | |||
sscanf(s, "frgb(%f,%f,%f)", &r, &g, &b); | |||
color->pixel_float.r = r; | |||
color->pixel_float.g = g; | |||
color->pixel_float.b = b; | |||
} | |||
else if(!strncmp(s, "argb(", 4)) | |||
{ | |||
uint32_t a, r ,g ,b; | |||
sscanf(s, "argb(%u,%u,%u,%u)", &a, &r, &g, &b); | |||
color->pixel_float.a = a / 255.0f; | |||
color->pixel_float.r = r / 255.0f; | |||
color->pixel_float.g = g / 255.0f; | |||
color->pixel_float.b = b / 255.0f; | |||
} | |||
else if(!strncmp(s, "fargb(", 5)) | |||
{ | |||
float a, r ,g ,b; | |||
sscanf(s, "fargb(%f, %f,%f,%f)", &a, &r, &g, &b); | |||
color->pixel_float.a = a; | |||
color->pixel_float.r = r; | |||
color->pixel_float.g = g; | |||
color->pixel_float.b = b; | |||
} | |||
else | |||
{ | |||
unsigned int i; | |||
for(i=0; i<sizeof(color_table); i++) | |||
{ | |||
if(!strcasecmp(color_table[i].name,s)) | |||
{ | |||
color->pixel_float.a = color_table[i].a; | |||
color->pixel_float.r = color_table[i].r; | |||
color->pixel_float.g = color_table[i].g; | |||
color->pixel_float.b = color_table[i].b; | |||
break; | |||
} | |||
} | |||
} | |||
return color; | |||
} |
@@ -1,47 +0,0 @@ | |||
/* | |||
* libpipi Pathetic image processing interface library | |||
* Copyright (c) 2004-2008 Sam Hocevar <sam@zoy.org> | |||
* 2008 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library is free software. It comes without any warranty, to | |||
* the extent permitted by applicable law. You can redistribute it | |||
* and/or modify it under the terms of the Do What The Fuck You Want | |||
* To Public License, Version 2, as published by Sam Hocevar. See | |||
* http://sam.zoy.org/wtfpl/COPYING for more details. | |||
*/ | |||
/* | |||
* rectangle.c: rectangle rendering functions | |||
*/ | |||
/* XXX: this file is a JOKE, don't use it */ | |||
#include "config.h" | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
#include <string.h> | |||
#include "pipi.h" | |||
#include "pipi-internals.h" | |||
int pipi_draw_rectangle(pipi_image_t *img , int xa, int ya, int xb, int yb, uint32_t c, int aa) | |||
{ | |||
while(ya < yb) | |||
{ | |||
pipi_draw_line(img, xa, ya, xb, ya, c, aa); | |||
ya++; | |||
} | |||
while(ya > yb) | |||
{ | |||
pipi_draw_line(img, xa, ya, xb, ya, c, aa); | |||
ya--; | |||
} | |||
return pipi_draw_line(img, xa, yb, xb, yb, c, aa); | |||
} | |||