1*ec63e07aSXin Li--- convert.h 2020-08-27 15:46:45.028628305 +0000 2*ec63e07aSXin Li+++ convert_helper.h 2020-08-27 14:26:02.155455250 +0000 3*ec63e07aSXin Li@@ -1,126 +1,8 @@ 4*ec63e07aSXin Li-/* 5*ec63e07aSXin Li- * The copyright in this software is being made available under the 2-clauses 6*ec63e07aSXin Li- * BSD License, included below. This software may be subject to other third 7*ec63e07aSXin Li- * party and contributor rights, including patent rights, and no such rights 8*ec63e07aSXin Li- * are granted under this license. 9*ec63e07aSXin Li- * 10*ec63e07aSXin Li- * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium 11*ec63e07aSXin Li- * Copyright (c) 2002-2014, Professor Benoit Macq 12*ec63e07aSXin Li- * Copyright (c) 2001-2003, David Janssens 13*ec63e07aSXin Li- * Copyright (c) 2002-2003, Yannick Verschueren 14*ec63e07aSXin Li- * Copyright (c) 2003-2007, Francois-Olivier Devaux 15*ec63e07aSXin Li- * Copyright (c) 2003-2014, Antonin Descampe 16*ec63e07aSXin Li- * Copyright (c) 2005, Herve Drolon, FreeImage Team 17*ec63e07aSXin Li- * All rights reserved. 18*ec63e07aSXin Li- * 19*ec63e07aSXin Li- * Redistribution and use in source and binary forms, with or without 20*ec63e07aSXin Li- * modification, are permitted provided that the following conditions 21*ec63e07aSXin Li- * are met: 22*ec63e07aSXin Li- * 1. Redistributions of source code must retain the above copyright 23*ec63e07aSXin Li- * notice, this list of conditions and the following disclaimer. 24*ec63e07aSXin Li- * 2. Redistributions in binary form must reproduce the above copyright 25*ec63e07aSXin Li- * notice, this list of conditions and the following disclaimer in the 26*ec63e07aSXin Li- * documentation and/or other materials provided with the distribution. 27*ec63e07aSXin Li- * 28*ec63e07aSXin Li- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' 29*ec63e07aSXin Li- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30*ec63e07aSXin Li- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 31*ec63e07aSXin Li- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 32*ec63e07aSXin Li- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 33*ec63e07aSXin Li- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 34*ec63e07aSXin Li- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35*ec63e07aSXin Li- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 36*ec63e07aSXin Li- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 37*ec63e07aSXin Li- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38*ec63e07aSXin Li- * POSSIBILITY OF SUCH DAMAGE. 39*ec63e07aSXin Li- */ 40*ec63e07aSXin Li-#ifndef __J2K_CONVERT_H 41*ec63e07aSXin Li-#define __J2K_CONVERT_H 42*ec63e07aSXin Li+// imagetopnm and the two functions it calls internaly are patched 43*ec63e07aSXin Li+// versions of the library's tools; from openjpeg/src/bin/jp2/convert.c 44*ec63e07aSXin Li 45*ec63e07aSXin Li-/**@name RAW component encoding parameters */ 46*ec63e07aSXin Li-/*@{*/ 47*ec63e07aSXin Li-typedef struct raw_comp_cparameters { 48*ec63e07aSXin Li- /** subsampling in X direction */ 49*ec63e07aSXin Li- int dx; 50*ec63e07aSXin Li- /** subsampling in Y direction */ 51*ec63e07aSXin Li- int dy; 52*ec63e07aSXin Li- /*@}*/ 53*ec63e07aSXin Li-} raw_comp_cparameters_t; 54*ec63e07aSXin Li- 55*ec63e07aSXin Li-/**@name RAW image encoding parameters */ 56*ec63e07aSXin Li-/*@{*/ 57*ec63e07aSXin Li-typedef struct raw_cparameters { 58*ec63e07aSXin Li- /** width of the raw image */ 59*ec63e07aSXin Li- int rawWidth; 60*ec63e07aSXin Li- /** height of the raw image */ 61*ec63e07aSXin Li- int rawHeight; 62*ec63e07aSXin Li- /** number of components of the raw image */ 63*ec63e07aSXin Li- int rawComp; 64*ec63e07aSXin Li- /** bit depth of the raw image */ 65*ec63e07aSXin Li- int rawBitDepth; 66*ec63e07aSXin Li- /** signed/unsigned raw image */ 67*ec63e07aSXin Li- OPJ_BOOL rawSigned; 68*ec63e07aSXin Li- /** raw components parameters */ 69*ec63e07aSXin Li- raw_comp_cparameters_t *rawComps; 70*ec63e07aSXin Li- /*@}*/ 71*ec63e07aSXin Li-} raw_cparameters_t; 72*ec63e07aSXin Li- 73*ec63e07aSXin Li-/* Component precision clipping */ 74*ec63e07aSXin Li-void clip_component(opj_image_comp_t* component, OPJ_UINT32 precision); 75*ec63e07aSXin Li-/* Component precision scaling */ 76*ec63e07aSXin Li-void scale_component(opj_image_comp_t* component, OPJ_UINT32 precision); 77*ec63e07aSXin Li- 78*ec63e07aSXin Li-/* planar / interleaved conversions */ 79*ec63e07aSXin Li-typedef void (* convert_32s_CXPX)(const OPJ_INT32* pSrc, OPJ_INT32* const* pDst, 80*ec63e07aSXin Li- OPJ_SIZE_T length); 81*ec63e07aSXin Li-extern const convert_32s_CXPX convert_32s_CXPX_LUT[5]; 82*ec63e07aSXin Li-typedef void (* convert_32s_PXCX)(OPJ_INT32 const* const* pSrc, OPJ_INT32* pDst, 83*ec63e07aSXin Li- OPJ_SIZE_T length, OPJ_INT32 adjust); 84*ec63e07aSXin Li-extern const convert_32s_PXCX convert_32s_PXCX_LUT[5]; 85*ec63e07aSXin Li-/* bit depth conversions */ 86*ec63e07aSXin Li-typedef void (* convert_XXx32s_C1R)(const OPJ_BYTE* pSrc, OPJ_INT32* pDst, 87*ec63e07aSXin Li- OPJ_SIZE_T length); 88*ec63e07aSXin Li-extern const convert_XXx32s_C1R convert_XXu32s_C1R_LUT[9]; /* up to 8bpp */ 89*ec63e07aSXin Li-typedef void (* convert_32sXXx_C1R)(const OPJ_INT32* pSrc, OPJ_BYTE* pDst, 90*ec63e07aSXin Li- OPJ_SIZE_T length); 91*ec63e07aSXin Li-extern const convert_32sXXx_C1R convert_32sXXu_C1R_LUT[9]; /* up to 8bpp */ 92*ec63e07aSXin Li- 93*ec63e07aSXin Li- 94*ec63e07aSXin Li-/* TGA conversion */ 95*ec63e07aSXin Li-opj_image_t* tgatoimage(const char *filename, opj_cparameters_t *parameters); 96*ec63e07aSXin Li-int imagetotga(opj_image_t * image, const char *outfile); 97*ec63e07aSXin Li- 98*ec63e07aSXin Li-/* BMP conversion */ 99*ec63e07aSXin Li-opj_image_t* bmptoimage(const char *filename, opj_cparameters_t *parameters); 100*ec63e07aSXin Li-int imagetobmp(opj_image_t *image, const char *outfile); 101*ec63e07aSXin Li- 102*ec63e07aSXin Li-/* TIFF conversion*/ 103*ec63e07aSXin Li-opj_image_t* tiftoimage(const char *filename, opj_cparameters_t *parameters); 104*ec63e07aSXin Li-int imagetotif(opj_image_t *image, const char *outfile); 105*ec63e07aSXin Li-/** 106*ec63e07aSXin Li-Load a single image component encoded in PGX file format 107*ec63e07aSXin Li-@param filename Name of the PGX file to load 108*ec63e07aSXin Li-@param parameters *List ?* 109*ec63e07aSXin Li-@return Returns a greyscale image if successful, returns NULL otherwise 110*ec63e07aSXin Li-*/ 111*ec63e07aSXin Li-opj_image_t* pgxtoimage(const char *filename, opj_cparameters_t *parameters); 112*ec63e07aSXin Li-int imagetopgx(opj_image_t *image, const char *outfile); 113*ec63e07aSXin Li- 114*ec63e07aSXin Li-opj_image_t* pnmtoimage(const char *filename, opj_cparameters_t *parameters); 115*ec63e07aSXin Li-int imagetopnm(opj_image_t *image, const char *outfile, int force_split); 116*ec63e07aSXin Li- 117*ec63e07aSXin Li-/* RAW conversion */ 118*ec63e07aSXin Li-int imagetoraw(opj_image_t * image, const char *outfile); 119*ec63e07aSXin Li-int imagetorawl(opj_image_t * image, const char *outfile); 120*ec63e07aSXin Li-opj_image_t* rawtoimage(const char *filename, opj_cparameters_t *parameters, 121*ec63e07aSXin Li- raw_cparameters_t *raw_cp); 122*ec63e07aSXin Li-opj_image_t* rawltoimage(const char *filename, opj_cparameters_t *parameters, 123*ec63e07aSXin Li- raw_cparameters_t *raw_cp); 124*ec63e07aSXin Li- 125*ec63e07aSXin Li-/* PNG conversion*/ 126*ec63e07aSXin Li-extern int imagetopng(opj_image_t *image, const char *write_idf); 127*ec63e07aSXin Li-extern opj_image_t* pngtoimage(const char *filename, 128*ec63e07aSXin Li- opj_cparameters_t *parameters); 129*ec63e07aSXin Li- 130*ec63e07aSXin Li-#endif /* __J2K_CONVERT_H */ 131*ec63e07aSXin Li+#include "openjp2_sapi.sapi.h" 132*ec63e07aSXin Li 133*ec63e07aSXin Li+const char* opj_version(void); 134*ec63e07aSXin Li+static int are_comps_similar(opj_image_t* image); 135*ec63e07aSXin Li+int imagetopnm(opj_image_t* image, const char* outfile, int force_split); 136