/usr/share/gnudatalanguage/lib/read_jpeg2000.pro is in libgnudatalanguage0 0.9.7-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | function READ_JPEG2000, filename, red, green, blue, order=order
;
ON_ERROR, 2
;+
;
; NAME: READ_JPEG2000
;
; PURPOSE: Reads a jpeg2000 file into memory
;
; CATEGORY: Images (IO)
;
; CALLING SEQUENCE:
; image=READ_JPEG2000(filename, [red, green, blue] [,/order])
;
; KEYWORD PARAMETERS:
; ORDER: flip the image in the vertical
;
; OUTPUTS: image is a three dimensional array [ncomponents,xsize,ysize]
; ncomponents must be 3???
;
; OPTIONAL OUTPUTS: For pseudocolor only
; Red,Green,Blue: 3 color vectors
;
;
; SIDE EFFECTS:
;
;
; RESTRICTIONS:
; Requires ImageMagick (that means that GDL must have been
; compiled with ImageMagick AND jasper library)
;
; PROCEDURE:
; Use ImageMagick to read the data as requested
;
; EXAMPLE: An image of Saturn should be around in the GDL CVS
; file='test.jp2'
; image=READ_JPEG(file)
;
; MODIFICATION HISTORY:
; 2013-Oct-09, GD.
;
;-
; LICENCE:
; Copyright (C) 2004, 2011, 2012
; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 2 of the License, or
; (at your option) any later version.
;
;-
;
; Do we have access to ImageMagick functionnalities ??
;
if (MAGICK_EXISTS() EQ 0) then begin
MESSAGE, /continue, "GDL was compiled without ImageMagick support."
MESSAGE, "You must have ImageMagick support to use this functionaly."
endif
;
if (N_PARAMS() NE 1 and N_PARAMS() ne 4 ) then MESSAGE, "Incorrect number of arguments."
;
if (N_ELEMENTS(filename) GT 1) then MESSAGE, "Only one file at once !"
if (STRLEN(filename) EQ 0) then MESSAGE, "Null filename not allowed."
;
if ((FILE_INFO(filename)).exists EQ 0) then MESSAGE, "Error opening file. File: "+filename
if (FILE_TEST(filename, /regular) EQ 0) then MESSAGE, "Not a regular File: "+filename
;
; testing whether the format is as expected
;
if ( ~MAGICK_PING(filename, 'JP2') and ~MAGICK_PING(filename, 'JPC') ) then begin
MESSAGE, "JPEG200 error: Not a JPEG2000 file:"
endif
;
mid=MAGICK_OPEN(filename)
;
;flip if order is set
if (KEYWORD_SET(order)) then MAGICK_FLIP, mid
;
if (N_PARAMS() eq 4) then begin
if (MAGICK_INDEXEDCOLOR(mid)) then MAGICK_READCOLORMAPRGB, mid, red, green, blue
endif
image=MAGICK_READ(mid)
image = image[[2,1,0],*,*]
return, image
end
|