/*
 *  libpipi       Proper image processing implementation 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.
 */

/*
 * pipi.h: the full libpipi public API
 */

#ifndef __PIPI_H__
#define __PIPI_H__

#ifdef __cplusplus
extern "C"
{
#endif

typedef struct pipi_image pipi_image_t;

extern pipi_image_t *pipi_load(const char *name);
extern pipi_image_t *pipi_new(int width, int height);
extern pipi_image_t *pipi_copy(const pipi_image_t *img);
extern void pipi_free(pipi_image_t *img);
extern void pipi_save(pipi_image_t *img, const char *name);

extern int pipi_getgray(pipi_image_t const *img, int x, int y, int *g);
extern int pipi_getpixel(pipi_image_t const *img,
                         int x, int y, int *r, int *g, int *b);
extern int pipi_setpixel(pipi_image_t *img, int x, int y, int r, int g, int b);

extern pipi_image_t *pipi_resize(pipi_image_t const *, int, int);

#ifdef __cplusplus
}
#endif

#endif /* __PIPI_H__ */