b2bc16de3984e606d3ae241e4f896fd88c46cefa
[openjpeg.git] / codec / convert.h
1 /*
2  * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
3  * Copyright (c) 2002-2007, Professor Benoit Macq
4  * Copyright (c) 2001-2003, David Janssens
5  * Copyright (c) 2002-2003, Yannick Verschueren
6  * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
7  * Copyright (c) 2005, Herve Drolon, FreeImage Team
8  * All rights reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 #ifndef __J2K_CONVERT_H
32 #define __J2K_CONVERT_H
33
34 /**@name RAW image encoding parameters */
35 /*@{*/
36 typedef struct raw_cparameters {
37         /** width of the raw image */
38         int rawWidth;
39         /** height of the raw image */
40         int rawHeight;
41         /** components of the raw image */
42         int rawComp;
43         /** bit depth of the raw image */
44         int rawBitDepth;
45         /** signed/unsigned raw image */
46         bool rawSigned;
47         /*@}*/
48 } raw_cparameters_t;
49
50 opj_image_t* bmptoimage(const char *filename, opj_cparameters_t *parameters);
51
52 int imagetobmp(opj_image_t *image, const char *outfile);
53
54 /* TIFF to image conversion*/
55 opj_image_t* tiftoimage(const char *filename, opj_cparameters_t *parameters);
56 int imagetotif(opj_image_t *image, const char *outfile);
57 /**
58 Load a single image component encoded in PGX file format
59 @param filename Name of the PGX file to load
60 @param parameters *List ?*
61 @return Returns a greyscale image if successful, returns NULL otherwise
62 */
63 opj_image_t* pgxtoimage(const char *filename, opj_cparameters_t *parameters);
64
65 int imagetopgx(opj_image_t *image, const char *outfile);
66
67 opj_image_t* pnmtoimage(const char *filename, opj_cparameters_t *parameters);
68
69 int imagetopnm(opj_image_t *image, const char *outfile);
70
71 int imagetoraw(opj_image_t * image, const char *outfile);
72
73 opj_image_t* rawtoimage(const char *filename, opj_cparameters_t *parameters, raw_cparameters_t *raw_cp);
74
75 #endif /* __J2K_CONVERT_H */
76