svn-gvsig-desktop / tags / v1_0_RELEASE / libraries / libjni-mrsid / src / mrsidimagereader.cpp @ 9167
History | View | Annotate | Download (5.07 KB)
1 | 662 | igbrotru | /**********************************************************************
|
---|---|---|---|
2 | * $Id$
|
||
3 | *
|
||
4 | * Name: mrsid_interfaz.c
|
||
5 | * Project: JMRSID. Interfaz java to MrSID (Lizardtech).
|
||
6 | * Purpose: dataset's Basic Funcions.
|
||
7 | * Author: Nacho Brodin, brodin_ign@gva.es
|
||
8 | *
|
||
9 | **********************************************************************/
|
||
10 | 2214 | igbrotru | /* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
11 | *
|
||
12 | * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
|
||
13 | *
|
||
14 | * This program is free software; you can redistribute it and/or
|
||
15 | * modify it under the terms of the GNU General Public License
|
||
16 | * as published by the Free Software Foundation; either version 2
|
||
17 | * of the License, or (at your option) any later version.
|
||
18 | *
|
||
19 | * This program is distributed in the hope that it will be useful,
|
||
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
22 | * GNU General Public License for more details.
|
||
23 | *
|
||
24 | * You should have received a copy of the GNU General Public License
|
||
25 | * along with this program; if not, write to the Free Software
|
||
26 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
|
||
27 | *
|
||
28 | * For more information, contact:
|
||
29 | *
|
||
30 | * Generalitat Valenciana
|
||
31 | * Conselleria d'Infraestructures i Transport
|
||
32 | * Av. Blasco Ib??ez, 50
|
||
33 | * 46010 VALENCIA
|
||
34 | * SPAIN
|
||
35 | *
|
||
36 | * +34 963862235
|
||
37 | * gvsig@gva.es
|
||
38 | * www.gvsig.gva.es
|
||
39 | *
|
||
40 | * or
|
||
41 | *
|
||
42 | * IVER T.I. S.A
|
||
43 | * Salamanca 50
|
||
44 | * 46005 Valencia
|
||
45 | * Spain
|
||
46 | *
|
||
47 | * +34 963163400
|
||
48 | * dac@iver.es
|
||
49 | 3539 | nacho | *
|
50 | * [01] 01-Oct-2005 nbt MrSIDImageReaderArrayNat function to support name parameter in char array
|
||
51 | 2214 | igbrotru | */
|
52 | 662 | igbrotru | |
53 | |||
54 | #include <jni.h> |
||
55 | 3539 | nacho | #include <stdlib.h> |
56 | 662 | igbrotru | #include "es_gva_cit_jmrsid_MrSIDImageReader.h" |
57 | #include "es_gva_cit_jmrsid_JNIBase.h" |
||
58 | |||
59 | #include "lt_types.h" |
||
60 | #include "lt_base.h" |
||
61 | #include "lt_fileSpec.h" |
||
62 | #include "lti_geoCoord.h" |
||
63 | #include "lti_pixel.h" |
||
64 | #include "lti_navigator.h" |
||
65 | #include "lti_sceneBuffer.h" |
||
66 | #include "lti_metadataDatabase.h" |
||
67 | #include "lti_metadataRecord.h" |
||
68 | #include "lti_utils.h" |
||
69 | #include "MrSIDImageReader.h" |
||
70 | #include "J2KImageReader.h" |
||
71 | #include "lti_imageReader.h" |
||
72 | #include "lti_sceneBuffer.h" |
||
73 | #include "lti_scene.h" |
||
74 | //#include "cpl_conv.h"
|
||
75 | #include "TIFFImageWriter.h" |
||
76 | 3539 | nacho | |
77 | 662 | igbrotru | LT_USE_NAMESPACE(LizardTech); |
78 | |||
79 | /******************************************************************************/
|
||
80 | // Constructor MrSIDImageReader
|
||
81 | /******************************************************************************/
|
||
82 | |||
83 | |||
84 | JNIEXPORT jlong JNICALL Java_es_gva_cit_jmrsid_MrSIDImageReader_MrSIDImageReaderNat |
||
85 | (JNIEnv *env, jobject obj, jstring pszF){ |
||
86 | |||
87 | const char *pszFilename; |
||
88 | LTIImageReader *poImageReader; |
||
89 | jlong jresult = 0 ;
|
||
90 | FILE *fich; |
||
91 | |||
92 | 3539 | nacho | |
93 | 662 | igbrotru | pszFilename = env->GetStringUTFChars(pszF, 0);
|
94 | 3539 | nacho | |
95 | 662 | igbrotru | fich=fopen( pszFilename, "r" );
|
96 | if( fich )
|
||
97 | fclose(fich); |
||
98 | else
|
||
99 | { |
||
100 | fclose(fich); |
||
101 | return -1; |
||
102 | } |
||
103 | |||
104 | const LTFileSpec fileSpec(pszFilename);
|
||
105 | poImageReader = new MrSIDImageReader( fileSpec );
|
||
106 | *(LTIImageReader **)&jresult = poImageReader; |
||
107 | env->ReleaseStringUTFChars(pszF, pszFilename); |
||
108 | |||
109 | |||
110 | if(poImageReader==NULL)return -1; |
||
111 | else return jresult; |
||
112 | |||
113 | } |
||
114 | |||
115 | 3090 | nacho | /******************************************************************************/
|
116 | 3539 | nacho | // Constructor MrSIDImageArrayReader
|
117 | 3090 | nacho | /******************************************************************************/
|
118 | |||
119 | |||
120 | JNIEXPORT jlong JNICALL Java_es_gva_cit_jmrsid_MrSIDImageReader_MrSIDImageReaderArrayNat |
||
121 | (JNIEnv *env, jobject obj, jbyteArray pszF){ |
||
122 | |||
123 | char *pszFilename;
|
||
124 | LTIImageReader *poImageReader; |
||
125 | jlong jresult = 0 ;
|
||
126 | FILE *fich; |
||
127 | int longitud = 0; |
||
128 | |||
129 | longitud = env->GetArrayLength(pszF); |
||
130 | pszFilename = (char *)env->GetByteArrayElements(pszF, 0); |
||
131 | 3539 | nacho | pszFilename = (char *)realloc(pszFilename, longitud + 1); |
132 | pszFilename[longitud] = '\0';
|
||
133 | |||
134 | fich=fopen( (char *)pszFilename, "r" ); |
||
135 | 3090 | nacho | if( fich )
|
136 | fclose(fich); |
||
137 | else
|
||
138 | return -1; |
||
139 | 3539 | nacho | |
140 | 3090 | nacho | const LTFileSpec fileSpec(pszFilename);
|
141 | poImageReader = new MrSIDImageReader( fileSpec );
|
||
142 | 8765 | jjdelcerro | |
143 | 3090 | nacho | *(LTIImageReader **)&jresult = poImageReader; |
144 | 3539 | nacho | |
145 | env->ReleaseByteArrayElements(pszF, (jbyte *)pszFilename, 0);
|
||
146 | |||
147 | if(poImageReader==NULL) |
||
148 | return -1; |
||
149 | else
|
||
150 | return jresult;
|
||
151 | 3090 | nacho | |
152 | } |
||
153 | 662 | igbrotru | |
154 | /******************************************************************************/
|
||
155 | // getNumLevels
|
||
156 | /******************************************************************************/
|
||
157 | |||
158 | JNIEXPORT jint JNICALL Java_es_gva_cit_jmrsid_JNIBase_getNumLevelsNat |
||
159 | (JNIEnv *env, jobject obj, jlong cPtr){ |
||
160 | |||
161 | MrSIDImageReader *img = (MrSIDImageReader *) 0 ;
|
||
162 | int res = -1; |
||
163 | |||
164 | img = *(MrSIDImageReader **)&cPtr; |
||
165 | |||
166 | if(img!=NULL) |
||
167 | res = img->getNumLevels(); |
||
168 | |||
169 | return res;
|
||
170 | |||
171 | } |
||
172 | |||
173 | 1124 | igbrotru | /******************************************************************************/
|
174 | // ~MrSIDImageReader
|
||
175 | /******************************************************************************/
|
||
176 | |||
177 | JNIEXPORT void JNICALL Java_es_gva_cit_jmrsid_MrSIDImageReader_FreeMrSIDImageReaderNat
|
||
178 | (JNIEnv *env, jobject obj, jlong cPtr){ |
||
179 | |||
180 | MrSIDImageReader *reader = (MrSIDImageReader *) 0 ;
|
||
181 | |||
182 | reader = *(MrSIDImageReader **)&cPtr; |
||
183 | if(reader!=NULL){ |
||
184 | delete reader;
|
||
185 | } |
||
186 | |||
187 | } |
||
188 | |||
189 | 720 | igbrotru | |
190 | 1124 | igbrotru | |
191 | 720 | igbrotru |