| @@ -22,9 +22,7 @@ Image: | |||||
| · analysis/measure.cpp | · analysis/measure.cpp | ||||
| · codec/coreimage.cpp | · codec/coreimage.cpp | ||||
| · codec/coreimage.h | · codec/coreimage.h | ||||
| · codec.cpp | |||||
| · codec/jpeg.cpp | · codec/jpeg.cpp | ||||
| · colorstring.cpp | |||||
| · combine/blit.cpp | · combine/blit.cpp | ||||
| · combine/merge.cpp | · combine/merge.cpp | ||||
| · combine/minmax.cpp | · combine/minmax.cpp | ||||
| @@ -39,7 +37,6 @@ Image: | |||||
| · paint/bezier.cpp | · paint/bezier.cpp | ||||
| · paint/floodfill.cpp | · paint/floodfill.cpp | ||||
| · paint/line.cpp | · paint/line.cpp | ||||
| · paint/rectangle.cpp | |||||
| · quantize/reduce.cpp | · quantize/reduce.cpp | ||||
| · sequence.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); | |||||
| } | |||||