Load image from jpeg2000 file.
194{
196 << " filename=" << filename.toLatin1().data();
197
198 if (invalidFileExtension (filename)) {
199 return false;
200 }
201
202 opj_dparameters_t parameters;
203 initializeParameters (parameters);
204
205 parameters.decod_format = inputFormat (filename.toLatin1().data());
206
207 opj_stream_t *inStream = opj_stream_create_default_file_stream (filename.toLatin1().data(), 1);
208 if (!inStream) {
210 return false;
211 }
212
213
214 opj_codec_t *inCodec = decode (parameters.decod_format);
215 if (!inCodec) {
217 opj_stream_destroy (inStream);
218 return false;
219 }
220
221
225
226 if (!opj_setup_decoder (inCodec,
227 ¶meters)) {
229 opj_stream_destroy (inStream);
230 opj_destroy_codec (inCodec);
231 return false;
232 }
233
234
235 opj_image_t *image;
236 if (!opj_read_header (inStream,
237 inCodec,
238 &image)) {
240 opj_stream_destroy (inStream);
241 opj_destroy_codec (inCodec);
242 opj_image_destroy (image);
243 return false;
244 }
245
246
247 if (!(opj_decode (inCodec,
248 inStream,
249 image) &&
250 opj_end_decompress (inCodec,
251 inStream))) {
253 opj_destroy_codec (inCodec);
254 opj_stream_destroy (inStream);
255 opj_image_destroy (image);
256 return false;
257 }
258
259
260 opj_stream_destroy (inStream);
261
262 applyImageTweaks (image);
263
264
265 bool success = true;
266 QBuffer buffer;
267 buffer.open (QBuffer::WriteOnly);
269 buffer)) {
271 success = false;
272
273 } else {
274
275
276
277
278
279
280
281
282 imageResult.loadFromData(buffer.data());
283
284 }
285
286
287 if (inCodec) {
288 opj_destroy_codec (inCodec);
289 }
290 opj_image_destroy (image);
291
292 return success;
293}
void warningCallback(const char *msg, void *)
void infoCallback(const char *msg, void *)
void errorCallback(const char *msg, void *)
int imagetopnm(opj_image_t *image, QBuffer &buffer)
log4cpp::Category * mainCat
#define LOG4CPP_INFO_S(logger)
#define LOG4CPP_ERROR_S(logger)