Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | Related Functions
vil_j2k_image Class Reference

Class capable of reading JPEG2000 Part I files and ECW (ER Mapper's proprietary format) image files. More...

#include <vil_j2k_image.h>

Inheritance diagram for vil_j2k_image:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 vil_j2k_image (const vcl_string &fileOrUrl)
 vil_j2k_image (vil_stream *is)
 Read a jpeg 2000 image from a stream containing either a raw j2k codestream or a jp2 file stream.
 vil_j2k_image (vil_stream *vs, unsigned ni, unsigned nj, unsigned nplanes, enum vil_pixel_format format, unsigned compression_ratio=1)
 ~vil_j2k_image ()
virtual unsigned nplanes () const
 Dimensions: planes x width x height x components.
virtual unsigned ni () const
 Dimensions: Planes x ni x nj.
virtual unsigned nj () const
 Dimensions: Planes x ni x nj.
virtual enum vil_pixel_format pixel_format () const
 Pixel Format.
char const * file_format () const
 returns j2k.
virtual bool get_property (char const *, void *=0) const
 Extra property information.
virtual vil_image_view_base_sptr get_copy_view (unsigned i0, unsigned ni, unsigned j0, unsigned nj) const
 Create a read/write view of a copy of this data.
virtual vil_image_view_base_sptr get_copy_view_decimated (unsigned i0, unsigned ni, unsigned j0, unsigned nj, double i_factor, double j_factor) const
virtual vil_image_view_base_sptr get_copy_view_decimated_by_size (unsigned i0, unsigned ni, unsigned j0, unsigned nj, unsigned int output_width, unsigned int output_height) const
vil_image_view_base_sptr get_copy_view () const
 Create a read/write view of a copy of all the data.
bool is_valid () const
 Call this after construction to see if you can get valid data from me.
void setMaxImageDimension (unsigned int widthOrHeight, bool remote=false)
 When calling get_copy_view(), the function will scale down the output image_view so that neither dimension (x or y) is greater than widthOrHeight.
void unsetMaxImageDimension (bool remote=false)
 Call this if you don't want get_copy_view() to do size checking.
virtual bool put_view (const vil_image_view_base &im)
 JPEG2K compress the data from the full image view and insert in resource.
virtual bool put_view (const vil_image_view_base &im, unsigned i0, unsigned j0)
 JPEG2K compress the data from an image view and insert in resource.
bool put_line (const vil_image_view_base &im)
 JPEG2K compress by inserting an image row (line) at a time.
virtual bool view_fits (const vil_image_view_base &im, unsigned i0, unsigned j0)
 Check that a view will fit into the data at the given offset.
virtual vil_image_view_base_sptr get_view (unsigned i0, unsigned n_i, unsigned j0, unsigned n_j) const
 Create a read/write view of the data.
vil_image_view_base_sptr get_view () const
 Create a read/write view of all the data.

Static Public Member Functions

static vil_image_view_base_sptr s_decode_jpeg_2000 (vil_stream *vs, unsigned i0, unsigned ni, unsigned j0, unsigned nj, double i_factor, double j_factor)
 Static function that can be used to decode a JPEG2000 codestream or file (jp2 file).
static vil_image_view_base_sptr s_decode_jpeg_2000_by_size (vil_stream *vs, unsigned i0, unsigned ni, unsigned j0, unsigned nj, unsigned int output_width, unsigned int output_height)
static bool s_encode_jpeg2000 (vil_stream *vs, const char *out_filename, unsigned compression_ratio=1, unsigned num_lines_block=1024, bool verbose=false)
 Encode an entire image by loading the input resource from stream and compressing the input line by line by extracting an image view of a block of lines at a time, thus works for arbitrarily large images.
static bool s_encode_jpeg2000 (const char *in_filename, const char *out_filename, unsigned compression_ratio=1, unsigned num_lines_block=1024, bool verbose=false)
 encode an entire image by loading the input resource from file.

Protected Member Functions

void ref ()
void unref ()

Protected Attributes

CNCSFile * mFileResource
 The ermapper file.
CNCSJPCVilIOStreammStr
 The ermapper stream.
unsigned int mMaxLocalDimension
unsigned int mMaxRemoteDimension
 Same as.
bool mRemoteFile
 file is remote.
NCSFileBandInfo * mBandinfo
 band information array.
NCSFileViewFileInfoEx * mFinfo
 the file information block.
unsigned line_index_
 the current line being written for compression.
vcl_atomic_count reference_count_

Friends

class vil_smart_ptr< vil_image_resource >

Related Functions

(Note that these are not member functions.)

template<class destT , class kernelT , class accumT >
vil_image_resource_sptr vil_convolve_1d (const vil_image_resource_sptr &src_im, const destT, const kernelT *kernel, int k_lo, int k_hi, const accumT, vil_convolve_boundary_option start_option, vil_convolve_boundary_option end_option)
 Create an image_resource object which convolve kernel[x] x in [k_lo,k_hi] with srcT.
template<class destT , class kernelT , class accumT >
vil_image_resource_sptr vil_correlate_1d (const vil_image_resource_sptr &src_im, const destT, const kernelT *kernel, vcl_ptrdiff_t k_lo, vcl_ptrdiff_t k_hi, const accumT, vil_convolve_boundary_option start_option, vil_convolve_boundary_option end_option)
 Create an image_resource object which correlate kernel[x] x in [k_lo,k_hi] with srcT.
vil_image_resource_sptr vil_clamp (const vil_image_resource_sptr &src, double low, double hi)
 Clamp an image resource between two values.
bool vil_copy_deep (const vil_image_resource_sptr &src, vil_image_resource_sptr &dest)
 Copy src to dest.
vil_image_resource_sptr vil_crop (const vil_image_resource_sptr &src, unsigned i0, unsigned n_i, unsigned j0, unsigned n_j)
 Crop to a region of src.
vil_image_resource_sptr vil_decimate (const vil_image_resource_sptr &src, unsigned i_factor, unsigned j_factor=0)
 decimate to a region of src.
vil_image_resource_sptr vil_flip_lr (const vil_image_resource_sptr &src)
 Flip an image resource left to right.
vil_image_resource_sptr vil_flip_ud (const vil_image_resource_sptr &src)
 Flip an image resource left to right.
vil_image_resource_sptr vil_load_image_resource (char const *filename, bool verbose=true)
 Load an image resource object from a file.
vil_image_resource_sptr vil_load_image_resource_raw (vil_stream *, bool verbose=true)
 Load from a stream.
vil_image_resource_sptr vil_load_image_resource_raw (char const *, bool verbose=true)
 Load an image resource object from a file.
vil_image_resource_sptr vil_load_image_resource_plugin (char const *)
 Load from a filename with a plugin.
vil_image_resource_sptr vil_new_image_resource (unsigned ni, unsigned nj, unsigned nplanes, vil_pixel_format format)
 Make a new image of given format.
vil_image_resource_sptr vil_new_image_resource (unsigned ni, unsigned nj, vil_image_resource_sptr const &prototype)
 Make a new image, similar format to the prototype.
vil_image_resource_sptr vil_new_image_resource (vil_stream *os, unsigned ni, unsigned nj, unsigned nplanes, vil_pixel_format format, char const *file_format)
 Make a new image.
vil_image_resource_sptr vil_new_image_resource (char const *filename, unsigned ni, unsigned nj, vil_image_resource_sptr const &prototype, char const *file_format)
 Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype".
vil_image_resource_sptr vil_new_image_resource (char const *filename, unsigned ni, unsigned nj, unsigned nplanes, vil_pixel_format format, char const *file_format)
 Make a new image.
vil_image_resource_sptr vil_new_image_resource (vil_stream *os, unsigned ni, unsigned nj, vil_image_resource_sptr const &prototype, char const *file_format)
 Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype".
vil_image_resource_sptr vil_new_image_resource (char const *filename, unsigned ni, unsigned nj, unsigned nplanes, vil_image_resource_sptr const &prototype, char const *format=0)
 Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype".
vil_image_resource_sptr vil_new_image_resource (vil_stream *os, unsigned ni, unsigned nj, unsigned nplanes, vil_image_resource_sptr const &prototype, char const *file_format=0)
 Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype".
vil_image_resource_sptr vil_new_image_resource_interleaved (unsigned ni, unsigned nj, unsigned nplanes, vil_pixel_format format)
 Make a new image of given format with interleaved planes.
vil_image_resource_sptr vil_new_image_resource_of_view (vil_image_view_base const &view)
 Make a new image resource that is a wrapper on an existing view's data.
vil_image_resource_sptr vil_plane (const vil_image_resource_sptr &src, unsigned p)
 Return a specific plane of an image.
bool vil_save_image_resource (const vil_image_resource_sptr &ir, char const *filename, char const *file_format)
 Send vil_image_resource to disk.
bool vil_save_image_resource (const vil_image_resource_sptr &ir, char const *filename)
 Save vil_image_resource to file, deducing format from filename.
vil_image_resource_sptr vil_transpose (const vil_image_resource_sptr &src)
 Transpose an image.

Detailed Description

Class capable of reading JPEG2000 Part I files and ECW (ER Mapper's proprietary format) image files.

They can either be local or hosted on an Image Web Server. Either way, you just pass in the file path or url (eg. "ecwp://www.earthetc.com/images/australia/Sydney.ecw") to the ctor. The call get_copy_view() to get the image data that you want. The class efficiently handles reading large images (Terrabytes) -- and can read image portions without loading the whole file into memory.

Because the source image can be really big, it is possible (through the get_copy_view() API) to ask for more data than you can handle in memory -- or more than you download for the remote case. That is why the setMaxImageDimension() guard is in place. You can set a max image dimension for both remote and local files (different values for each). Then if you call get_copy_view() asking for an image that is too big, get_copy_view() will scale down the image to the max dimension you specified. It does this silently -- perhaps we could/should change this?

Note that, in order to use this class, you need to use cmake to configure VXL to link against Er Mapper's freely available ECW JPEG 2000 SDK (http://ermapper.com/downloads/sdks.aspx#16).

Writing implemented by J. Mundy April 2009 The SDK appears not to support float or double pixel types only integral forms; both signed or unsigned are supported. Another caveat is that the actual compression rate is only loosely related to the targeted compression rate specified upon creating the resource

Definition at line 63 of file vil_j2k_image.h.


Constructor & Destructor Documentation

vil_j2k_image::vil_j2k_image ( const vcl_string &  fileOrUrl)
Parameters:
filelOrUrl,:can either be a local file (eg. /home/beavis/file1.jp2) or it can be a url to a file hosted on an Image Web Server (eg. ecwp://www.earthetc.com/images/australia/Sydney.ecw or ecwp://www.earthetc.com/images/usa/1metercalif.ecw

Definition at line 179 of file vil_j2k_image.cxx.

vil_j2k_image::vil_j2k_image ( vil_stream is)

Read a jpeg 2000 image from a stream containing either a raw j2k codestream or a jp2 file stream.

is' current position needs to be pointing at the beginning of one of these two things. In other words, the beginning of the stream must contain one of the two signatures:

  • Hex( FF 4F ) -- (codestream)
  • Hex( 00 00 00 0C 6A 50 20 20 0D 0A 87 0A ) -- jp2 file

Note that some references state that jp2 files start with ( 00 00 00 0C 6A 50 1A 1A 0D 0A 87 0A ) [note the 1A 1A difference]. I believe this was changed between the last draft and the final version of ISO/IEC 155444-1 (JPEG standard). I have never seen a real jp2 file with this old signature (including the official jpeg conformance test files)

also note: Don't use is while I'm trying to use it... it'll screw us both up.

Definition at line 201 of file vil_j2k_image.cxx.

vil_j2k_image::vil_j2k_image ( vil_stream vs,
unsigned  ni,
unsigned  nj,
unsigned  nplanes,
enum vil_pixel_format  format,
unsigned  compression_ratio = 1 
)

Definition at line 220 of file vil_j2k_image.cxx.

vil_j2k_image::~vil_j2k_image ( )

Definition at line 290 of file vil_j2k_image.cxx.


Member Function Documentation

char const * vil_j2k_image::file_format ( ) const [virtual]

returns j2k.

Reimplemented from vil_image_resource.

Definition at line 327 of file vil_j2k_image.cxx.

vil_image_view_base_sptr vil_j2k_image::get_copy_view ( unsigned  i0,
unsigned  ni,
unsigned  j0,
unsigned  nj 
) const [virtual]

Create a read/write view of a copy of this data.

Returns:
0 if unable to get view of correct size.

Implements vil_image_resource.

Definition at line 447 of file vil_j2k_image.cxx.

vil_image_view_base_sptr vil_j2k_image::get_copy_view ( ) const [inline]

Create a read/write view of a copy of all the data.

Reimplemented from vil_image_resource.

Definition at line 116 of file vil_j2k_image.h.

vil_image_view_base_sptr vil_j2k_image::get_copy_view_decimated ( unsigned  i0,
unsigned  ni,
unsigned  j0,
unsigned  nj,
double  i_factor,
double  j_factor 
) const [virtual]

Definition at line 333 of file vil_j2k_image.cxx.

vil_image_view_base_sptr vil_j2k_image::get_copy_view_decimated_by_size ( unsigned  i0,
unsigned  ni,
unsigned  j0,
unsigned  nj,
unsigned int  output_width,
unsigned int  output_height 
) const [virtual]

Definition at line 349 of file vil_j2k_image.cxx.

virtual bool vil_j2k_image::get_property ( char const *  tag,
void *  property_value = 0 
) const [inline, virtual]

Extra property information.

Implements vil_image_resource.

Definition at line 98 of file vil_j2k_image.h.

virtual vil_image_view_base_sptr vil_image_resource::get_view ( unsigned  i0,
unsigned  n_i,
unsigned  j0,
unsigned  n_j 
) const [inline, virtual, inherited]

Create a read/write view of the data.

Modifying this view might modify the actual data. If you want to modify this data in place, call put_view after you done, and it should work efficiently. This function will always return a multi-plane scalar-pixel view of the data.

Returns:
0 if unable to get view of correct size, or if resource is write-only.

If you want to fill an existing view (e.g. a window onto some other image), then use

   vil_reformat(data->get_view(..), window);
  

Reimplemented in vil_flip_ud_image_resource, vil_memory_image, vil_plane_image_resource, vil_flip_lr_image_resource, vil_clamp_image_resource, vil_dicom_image, vil_decimate_image_resource, vil_crop_image_resource, and vil_transpose_image_resource.

Definition at line 64 of file vil_image_resource.h.

vil_image_view_base_sptr vil_image_resource::get_view ( ) const [inline, inherited]

Create a read/write view of all the data.

Definition at line 69 of file vil_image_resource.h.

bool vil_j2k_image::is_valid ( ) const [inline]

Call this after construction to see if you can get valid data from me.

If this returns false, then this image is of no use to you

Definition at line 122 of file vil_j2k_image.h.

unsigned vil_j2k_image::ni ( ) const [virtual]

Dimensions: Planes x ni x nj.

The number of pixels in each row.

Implements vil_image_resource.

Definition at line 309 of file vil_j2k_image.cxx.

unsigned vil_j2k_image::nj ( ) const [virtual]

Dimensions: Planes x ni x nj.

The number of pixels in each column.

Implements vil_image_resource.

Definition at line 315 of file vil_j2k_image.cxx.

unsigned vil_j2k_image::nplanes ( ) const [virtual]

Dimensions: planes x width x height x components.

Implements vil_image_resource.

Definition at line 303 of file vil_j2k_image.cxx.

enum vil_pixel_format vil_j2k_image::pixel_format ( ) const [virtual]

Pixel Format.

A standard RGB RGB RGB of chars image has pixel_format() == VIL_PIXEL_FORMAT_BYTE

Implements vil_image_resource.

Definition at line 321 of file vil_j2k_image.cxx.

bool vil_j2k_image::put_line ( const vil_image_view_base im)

JPEG2K compress by inserting an image row (line) at a time.

When the full image has been inserted, the resource is closed and is no longer valid. The lines must be inserted in strict row order.

When the full image has been inserted, call put_line with image_row == nj(). This call causes the resource to be closed and is no longer valid. The lines must be inserted in strict row order.

Definition at line 531 of file vil_j2k_image.cxx.

bool vil_j2k_image::put_view ( const vil_image_view_base im) [virtual]

JPEG2K compress the data from the full image view and insert in resource.

JPEG2K compress the view and of the full image and insert in resource.

The compression ratio is determined when the resource is created by the file_format class.

The file is closed after putting the view into the resource and becomes an invalid resource.

Reimplemented from vil_image_resource.

Definition at line 583 of file vil_j2k_image.cxx.

virtual bool vil_j2k_image::put_view ( const vil_image_view_base im,
unsigned  i0,
unsigned  j0 
) [inline, virtual]

JPEG2K compress the data from an image view and insert in resource.

This method cannot be implemented because the J2K SDK does not support compressing arbitrary views. Only inserting strictly successive lines is allowed.

Implements vil_image_resource.

Definition at line 181 of file vil_j2k_image.h.

void vil_image_resource::ref ( ) [inline, protected, inherited]

Definition at line 110 of file vil_image_resource.h.

vil_image_view_base_sptr vil_j2k_image::s_decode_jpeg_2000 ( vil_stream vs,
unsigned  i0,
unsigned  ni,
unsigned  j0,
unsigned  nj,
double  i_factor,
double  j_factor 
) [static]

Static function that can be used to decode a JPEG2000 codestream or file (jp2 file).

The stream must start at vs' current position.

Definition at line 470 of file vil_j2k_image.cxx.

vil_image_view_base_sptr vil_j2k_image::s_decode_jpeg_2000_by_size ( vil_stream vs,
unsigned  i0,
unsigned  ni,
unsigned  j0,
unsigned  nj,
unsigned int  output_width,
unsigned int  output_height 
) [static]

Definition at line 485 of file vil_j2k_image.cxx.

bool vil_j2k_image::s_encode_jpeg2000 ( vil_stream vs,
const char *  out_filename,
unsigned  compression_ratio = 1,
unsigned  num_lines_block = 1024,
bool  verbose = false 
) [static]

Encode an entire image by loading the input resource from stream and compressing the input line by line by extracting an image view of a block of lines at a time, thus works for arbitrarily large images.

The num_lines_block parameter is the number of image rows in the block which is read into memory from the resource

Definition at line 618 of file vil_j2k_image.cxx.

bool vil_j2k_image::s_encode_jpeg2000 ( const char *  in_filename,
const char *  out_filename,
unsigned  compression_ratio = 1,
unsigned  num_lines_block = 1024,
bool  verbose = false 
) [static]

encode an entire image by loading the input resource from file.

Uses the stream-based method of the same name

Definition at line 681 of file vil_j2k_image.cxx.

void vil_j2k_image::setMaxImageDimension ( unsigned int  widthOrHeight,
bool  remote = false 
)

When calling get_copy_view(), the function will scale down the output image_view so that neither dimension (x or y) is greater than widthOrHeight.

This feature is here to protect you in the case that your code asks for an excessively large image that will crash your program. You can turn this checking off with

See also:
unsetMaxImageDimension() By default, this value is set to 5000.

Definition at line 461 of file vil_j2k_image.cxx.

void vil_image_resource::unref ( ) [inline, protected, inherited]

Definition at line 111 of file vil_image_resource.h.

void vil_j2k_image::unsetMaxImageDimension ( bool  remote = false)

Call this if you don't want get_copy_view() to do size checking.

Be warned that jpeg 2000 codestreams can be really big, so you could cause a program crash.

Definition at line 455 of file vil_j2k_image.cxx.

bool vil_j2k_image::view_fits ( const vil_image_view_base im,
unsigned  i0,
unsigned  j0 
) [virtual]

Check that a view will fit into the data at the given offset.

Reimplemented from vil_image_resource.

Definition at line 602 of file vil_j2k_image.cxx.


Friends And Related Function Documentation

vil_image_resource_sptr vil_clamp ( const vil_image_resource_sptr src,
double  low,
double  hi 
) [related]

Clamp an image resource between two values.

Reimplemented in vil_clamp_image_resource.

Definition at line 22 of file vil_clamp.cxx.

template<class destT , class kernelT , class accumT >
vil_image_resource_sptr vil_convolve_1d ( const vil_image_resource_sptr src_im,
const destT  ,
const kernelT *  kernel,
int  k_lo,
int  k_hi,
const accumT  ,
vil_convolve_boundary_option  start_option,
vil_convolve_boundary_option  end_option 
) [related]

Create an image_resource object which convolve kernel[x] x in [k_lo,k_hi] with srcT.

Note:
This function reverses the kernel. If you don't want the kernel reversed, use vil_correlate_1d instead.
Parameters:
kernelshould point to tap 0.

Definition at line 403 of file vil_convolve_1d.h.

bool vil_copy_deep ( const vil_image_resource_sptr src,
vil_image_resource_sptr dest 
) [related]

Copy src to dest.

This is useful if you want to copy on image into a window on another image. src and dest must have identical sizes, and pixel-types. Returns false if the copy failed. O(size).

Definition at line 41 of file vil_copy.cxx.

template<class destT , class kernelT , class accumT >
vil_image_resource_sptr vil_correlate_1d ( const vil_image_resource_sptr src_im,
const destT  ,
const kernelT *  kernel,
vcl_ptrdiff_t  k_lo,
vcl_ptrdiff_t  k_hi,
const accumT  ,
vil_convolve_boundary_option  start_option,
vil_convolve_boundary_option  end_option 
) [related]

Create an image_resource object which correlate kernel[x] x in [k_lo,k_hi] with srcT.

Note:
This function does not reverse the kernel. If you want the kernel reversed, use vil_convolve_1d instead.
Parameters:
kernelshould point to tap 0.

Definition at line 214 of file vil_correlate_1d.h.

vil_image_resource_sptr vil_crop ( const vil_image_resource_sptr src,
unsigned  i0,
unsigned  n_i,
unsigned  j0,
unsigned  n_j 
) [related]

Crop to a region of src.

Definition at line 15 of file vil_crop.cxx.

vil_image_resource_sptr vil_decimate ( const vil_image_resource_sptr src,
unsigned  i_factor,
unsigned  j_factor = 0 
) [related]

decimate to a region of src.

Definition at line 23 of file vil_decimate.cxx.

vil_image_resource_sptr vil_flip_lr ( const vil_image_resource_sptr src) [related]

Flip an image resource left to right.

Definition at line 17 of file vil_flip.cxx.

vil_image_resource_sptr vil_flip_ud ( const vil_image_resource_sptr src) [related]

Flip an image resource left to right.

Reimplemented in vil_flip_ud_image_resource.

Definition at line 124 of file vil_flip.cxx.

vil_image_resource_sptr vil_load_image_resource ( char const *  filename,
bool  verbose = true 
) [related]

Load an image resource object from a file.

Definition at line 71 of file vil_load.cxx.

vil_image_resource_sptr vil_load_image_resource_plugin ( char const *  ) [related]

Load from a filename with a plugin.

Definition at line 83 of file vil_load.cxx.

vil_image_resource_sptr vil_load_image_resource_raw ( vil_stream ,
bool  verbose = true 
) [related]

Load from a stream.

Won't use plugins.

Definition at line 19 of file vil_load.cxx.

vil_image_resource_sptr vil_load_image_resource_raw ( char const *  ,
bool  verbose = true 
) [related]

Load an image resource object from a file.

Won't use plugins.

Definition at line 45 of file vil_load.cxx.

vil_image_resource_sptr vil_new_image_resource ( unsigned  ni,
unsigned  nj,
unsigned  nplanes,
vil_pixel_format  format 
) [related]

Make a new image of given format.

If the format is not scalar, the number of planes must be 1. When you create a multi-component image in this way, the vil_image_resource API will treat it as a scalar pixel image with multiple planes. (This doesn't affect the underlying data storage.)

Reimplemented in vil_memory_image.

Definition at line 32 of file vil_new.cxx.

vil_image_resource_sptr vil_new_image_resource ( unsigned  ni,
unsigned  nj,
vil_image_resource_sptr const &  prototype 
) [related]

Make a new image, similar format to the prototype.

Definition at line 69 of file vil_new.cxx.

vil_image_resource_sptr vil_new_image_resource ( vil_stream os,
unsigned  ni,
unsigned  nj,
unsigned  nplanes,
vil_pixel_format  format,
char const *  file_format 
) [related]

Make a new image.

Definition at line 77 of file vil_new.cxx.

vil_image_resource_sptr vil_new_image_resource ( char const *  filename,
unsigned  ni,
unsigned  nj,
unsigned  nplanes,
vil_image_resource_sptr const &  prototype,
char const *  format = 0 
) [related]

Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype".

vil_image_resource_sptr vil_new_image_resource ( vil_stream os,
unsigned  ni,
unsigned  nj,
unsigned  nplanes,
vil_image_resource_sptr const &  prototype,
char const *  file_format = 0 
) [related]

Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype".

vil_image_resource_sptr vil_new_image_resource ( char const *  filename,
unsigned  ni,
unsigned  nj,
vil_image_resource_sptr const &  prototype,
char const *  file_format 
) [related]

Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype".

Definition at line 104 of file vil_new.cxx.

vil_image_resource_sptr vil_new_image_resource ( char const *  filename,
unsigned  ni,
unsigned  nj,
unsigned  nplanes,
vil_pixel_format  format,
char const *  file_format 
) [related]

Make a new image.

Definition at line 123 of file vil_new.cxx.

vil_image_resource_sptr vil_new_image_resource ( vil_stream os,
unsigned  ni,
unsigned  nj,
vil_image_resource_sptr const &  prototype,
char const *  file_format 
) [related]

Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype".

Definition at line 143 of file vil_new.cxx.

vil_image_resource_sptr vil_new_image_resource_interleaved ( unsigned  ni,
unsigned  nj,
unsigned  nplanes,
vil_pixel_format  format 
) [related]

Make a new image of given format with interleaved planes.

The format must be scalar.

Reimplemented in vil_memory_image.

Definition at line 44 of file vil_new.cxx.

vil_image_resource_sptr vil_new_image_resource_of_view ( vil_image_view_base const &  view) [related]

Make a new image resource that is a wrapper on an existing view's data.

Note:
The output will be a shallow copy of the input, so changing the pixel values of one may change the pixel value of the other. Thanks to the magic of smart pointers, the output will remain valid even if you destroy the input. When you wrap a multi-component image in this way, the vil_image_resource API will treat it as a scalar pixel image with multiple planes. (This doesn't affect the underlying data storage.)

Reimplemented in vil_memory_image.

Definition at line 62 of file vil_new.cxx.

vil_image_resource_sptr vil_plane ( const vil_image_resource_sptr src,
unsigned  p 
) [related]

Return a specific plane of an image.

Reimplemented in vil_plane_image_resource.

Definition at line 19 of file vil_plane.cxx.

bool vil_save_image_resource ( const vil_image_resource_sptr ir,
char const *  filename,
char const *  file_format 
) [related]

Send vil_image_resource to disk.

Definition at line 128 of file vil_save.cxx.

bool vil_save_image_resource ( const vil_image_resource_sptr ir,
char const *  filename 
) [related]

Save vil_image_resource to file, deducing format from filename.

Definition at line 147 of file vil_save.cxx.

friend class vil_smart_ptr< vil_image_resource > [friend, inherited]

Definition at line 109 of file vil_image_resource.h.

vil_image_resource_sptr vil_transpose ( const vil_image_resource_sptr src) [related]

Transpose an image.

Definition at line 17 of file vil_transpose.cxx.


Member Data Documentation

unsigned vil_j2k_image::line_index_ [protected]

the current line being written for compression.

Definition at line 213 of file vil_j2k_image.h.

NCSFileBandInfo* vil_j2k_image::mBandinfo [protected]

band information array.

Definition at line 209 of file vil_j2k_image.h.

CNCSFile* vil_j2k_image::mFileResource [protected]

The ermapper file.

Definition at line 192 of file vil_j2k_image.h.

NCSFileViewFileInfoEx* vil_j2k_image::mFinfo [protected]

the file information block.

Definition at line 211 of file vil_j2k_image.h.

unsigned int vil_j2k_image::mMaxLocalDimension [protected]
See also:
setMaxImageDimension and
unsetMaxImageDimension

if this equals vcl_numeric_limits<unsigned int>::max(), then this feature is turned off Of course I'm ignored if mRemoteFile is true

Definition at line 200 of file vil_j2k_image.h.

unsigned int vil_j2k_image::mMaxRemoteDimension [protected]

Same as.

See also:
mMaxLocalDimension but applies to remote files. This is typically a smaller number because of the speed concerns of downloading a very largeimage

Definition at line 205 of file vil_j2k_image.h.

bool vil_j2k_image::mRemoteFile [protected]

file is remote.

Definition at line 207 of file vil_j2k_image.h.

The ermapper stream.

Definition at line 194 of file vil_j2k_image.h.

vcl_atomic_count vil_image_resource::reference_count_ [protected, inherited]

Definition at line 114 of file vil_image_resource.h.


The documentation for this class was generated from the following files: