|
| DM3IO (const string &fname, IOMode rw_mode=READ_ONLY) |
|
| ~DM3IO () |
|
| ImageIO (const string &fname, IOMode rw) |
|
virtual | ~ImageIO () |
|
virtual int | read_header (Dict &dict, int image_index=0, const Region *area=0, bool is_3d=false)=0 |
| Read the header from an image. More...
|
|
virtual int | write_header (const Dict &dict, int image_index=0, const Region *area=0, EMUtil::EMDataType filestoragetype=EMUtil::EM_FLOAT, bool use_host_endian=true)=0 |
| Write a header to an image. More...
|
|
virtual int | read_data (float *data, int image_index=0, const Region *area=0, bool is_3d=false)=0 |
| Read the data from an image. More...
|
|
virtual int | read_data_8bit (unsigned char *data, int image_index=0, const Region *area=0, bool is_3d=false, float minval=0.0f, float maxval=0.0f) |
| Read the data from an image as an 8 bit array, regardless of format. More...
|
|
virtual int | write_data (float *data, int image_index=0, const Region *area=0, EMUtil::EMDataType filestoragetype=EMUtil::EM_FLOAT, bool use_host_endian=true)=0 |
| Write data to an image. More...
|
|
virtual int | read_ctf (Ctf &ctf, int image_index=0) |
| Read CTF data from this image. More...
|
|
virtual void | write_ctf (const Ctf &ctf, int image_index=0) |
| Write CTF data to this image. More...
|
|
virtual void | flush ()=0 |
| Flush the IO buffer. More...
|
|
virtual int | get_nimg () |
| Return the number of images in this image file. More...
|
|
virtual bool | is_complex_mode ()=0 |
| Is this an complex image or not. More...
|
|
virtual bool | is_image_big_endian ()=0 |
| Is this image in big endian or not. More...
|
|
virtual bool | is_single_image_format () const |
| Is this image format only storing 1 image or not. More...
|
|
template<class T > |
void | become_host_endian (T *data, size_t n=1) |
| Convert data of this image into host endian format. More...
|
|
string | get_filename () const |
|
|
enum | IOMode { READ_ONLY = 1
, READ_WRITE = 2
, WRITE_ONLY = 3
} |
|
virtual void | init ()=0 |
| Do some initialization before doing the read/write. More...
|
|
void | check_read_access (int image_index) |
| Validate 'image_index' in file reading. More...
|
|
void | check_read_access (int image_index, const float *data) |
| Validate 'image_index' and 'data' in file reading. More...
|
|
void | check_write_access (IOMode rw_mode, int image_index, int max_nimg=0) |
| Validate rw_mode and image_index in file writing. More...
|
|
void | check_write_access (IOMode rw_mode, int image_index, int max_nimg, const float *data) |
| Validate rw_mode, image_index, and data pointer in file writing. More...
|
|
void | check_region (const Region *area, const FloatSize &max_size, bool is_new_file=false, bool inbounds_only=true) |
| Validate image I/O region. More...
|
|
void | check_region (const Region *area, const IntSize &max_size, bool is_new_file=false, bool inbounds_only=true) |
| Validate image I/O region. More...
|
|
FILE * | sfopen (const string &filename, IOMode mode, bool *is_new=0, bool overwrite=false) |
| Run fopen safely. More...
|
|
string | filename |
|
IOMode | rw_mode |
|
FILE * | file = nullptr |
|
bool | initialized = false |
|
Gatan DM3 file is a hierarchical binary image format.
Everything in the image is a <key, value> pair, where key may be a container-type key which contains more key/value pairs. To read its header information, the whole file has to be parsed. During parsing, we check the keys that we are interested in and get their values.
The real binary data itself is also in this key/value hierarchy.
1 Gatan DM3 file contains 1 2D image.
Definition at line 242 of file dm3io.h.