MVE - Multi-View Environment mve-devel
Loading...
Searching...
No Matches
image_io.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2015, Simon Fuhrmann, Jens Ackermann, Sebastian Koch
3 * TU Darmstadt - Graphics, Capture and Massively Parallel Computing
4 * All rights reserved.
5 *
6 * This software may be modified and distributed under the terms
7 * of the BSD 3-Clause license. See the LICENSE.txt file for details.
8 */
9
10#ifndef MVE_IMAGE_FILE_HEADER
11#define MVE_IMAGE_FILE_HEADER
12
13#include <string>
14
15#include "mve/defines.h"
16#include "mve/image.h"
17
20
26{
27 int64_t width;
28 int64_t height;
29 int64_t channels;
31};
32
33/*
34 * ------------------ Image loading and saving --------------------
35 *
36 * libpng docs: http://www.libpng.org/pub/png/libpng-manual.txt
37 * libjpg docs: http://apodeline.free.fr/DOC/libjpeg/libjpeg.html
38 * libtiff docs: http://www.libtiff.org/libtiff.html
39 * pfm file docs: http://netpbm.sourceforge.net/doc/pfm.html
40 * ppm file docs: http://en.wikipedia.org/wiki/Netpbm_format
41 * more ppm file docs: http://netpbm.sourceforge.net/doc/#formats
42 *
43 * TODO
44 * - Read and display PNG embedded "keywords" (author, comment, etc.)
45 * - Fix PPM endianess
46 */
47
53load_file (std::string const& filename);
54
60load_file_headers (std::string const& filename);
61
66void
67save_file (ByteImage::ConstPtr image, std::string const& filename);
68
74void
75save_file (ByteImage::Ptr image, std::string const& filename);
76
81void
82save_file (FloatImage::ConstPtr image, std::string const& filename);
83
89void
90save_file (FloatImage::Ptr image, std::string const& filename);
91
92/* -------------------------- PNG support ------------------------- */
93
94#ifndef MVE_NO_PNG_SUPPORT
95
103load_png_file (std::string const& filename);
104
110load_png_file_headers (std::string const& filename);
111
117void
119 std::string const& filename, int compression_level = 1);
120
121#endif /* MVE_NO_PNG_SUPPORT */
122
123/* ------------------------- JPEG support ------------------------- */
124
125#ifndef MVE_NO_JPEG_SUPPORT
126
133load_jpg_file (std::string const& filename, std::string* exif = nullptr);
134
140load_jpg_file_headers (std::string const& filename);
141
147void
149 std::string const& filename, int quality);
150
151#endif /* MVE_NO_JPEG_SUPPORT */
152
153/* ------------------------- TIFF support ------------------------- */
154
155#ifndef MVE_NO_TIFF_SUPPORT
156
162load_tiff_file_headers (std::string const& filename);
163
169load_tiff_file (std::string const& filename);
170
175void
176save_tiff_file (ByteImage::ConstPtr image, std::string const& filename);
177
183load_tiff_16_file (std::string const& filename);
184
189void
190save_tiff_16_file (RawImage::ConstPtr image, std::string const& filename);
191
197load_tiff_float_file (std::string const& filename);
198
203void
204save_tiff_float_file (FloatImage::ConstPtr image, std::string const& filename);
205
206#endif /* MVE_NO_TIFF_SUPPORT */
207
208/* -------------------------- PFM support ------------------------- */
209
216load_pfm_file (std::string const& filename);
217
222void
223save_pfm_file (FloatImage::ConstPtr image, std::string const& filename);
224
225/* ------------------------- PPM16 support ------------------------ */
226
232load_ppm_16_file (std::string const& filename);
233
238void
239save_ppm_16_file (RawImage::ConstPtr image, std::string const& filename);
240
241/* -------------------------- PPM support ------------------------- */
242
248load_ppm_file (std::string const& filename);
249
254void
255save_ppm_file (ByteImage::ConstPtr image, std::string const& filename);
256
257/* ------------------- Native MVE image support ------------------- */
258
265load_mvei_file (std::string const& filename);
266
271load_mvei_file_headers (std::string const& filename);
272
278void
279save_mvei_file (ImageBase::ConstPtr image, std::string const& filename);
280
283
284#endif /* MVE_IMAGE_FILE_HEADER */
std::shared_ptr< ImageBase const > ConstPtr
Definition image_base.h:56
std::shared_ptr< ImageBase > Ptr
Definition image_base.h:55
std::shared_ptr< Image< T > > Ptr
Definition image.h:42
std::shared_ptr< Image< T > const > ConstPtr
Definition image.h:43
#define MVE_IMAGE_NAMESPACE_END
Definition defines.h:17
#define MVE_NAMESPACE_BEGIN
Definition defines.h:13
#define MVE_IMAGE_NAMESPACE_BEGIN
Definition defines.h:16
#define MVE_NAMESPACE_END
Definition defines.h:14
void save_tiff_float_file(FloatImage::ConstPtr image, std::string const &filename)
Writes a 32bit float TIFF to file.
Definition image_io.cc:933
void save_mvei_file(ImageBase::ConstPtr image, std::string const &filename)
Writes a native MVE image.
Definition image_io.cc:1295
void save_ppm_16_file(RawImage::ConstPtr image, std::string const &filename)
Save a 16 bit PPM file.
Definition image_io.cc:1218
ByteImage::Ptr load_png_file(std::string const &filename)
Loads a PNG file.
Definition image_io.cc:278
ByteImage::Ptr load_file(std::string const &filename)
Loads an image, detecting file type.
Definition image_io.cc:57
ByteImage::Ptr load_tiff_file(std::string const &filename)
Loads a TIFF file.
Definition image_io.cc:737
RawImage::Ptr load_tiff_16_file(std::string const &filename)
Loads a 16bit TIFF file.
Definition image_io.cc:810
FloatImage::Ptr load_tiff_float_file(std::string const &filename)
Loads a 32bit float TIFF file.
Definition image_io.cc:887
ImageBase::Ptr load_mvei_file(std::string const &filename)
Loads a native MVE image.
Definition image_io.cc:1260
ImageHeaders load_file_headers(std::string const &filename)
Loads the image headers, detecting file type.
Definition image_io.cc:107
ImageHeaders load_mvei_file_headers(std::string const &filename)
Loads the meta information for a native MVE image.
Definition image_io.cc:1283
ByteImage::Ptr load_ppm_file(std::string const &filename)
Loads a 8 bit PPM file.
Definition image_io.cc:1163
RawImage::Ptr load_ppm_16_file(std::string const &filename)
Loads a 16 bit PPM file.
Definition image_io.cc:1156
void save_jpg_file(ByteImage::ConstPtr image, std::string const &filename, int quality)
Saves image data to a JPEG file.
Definition image_io.cc:580
ImageHeaders load_png_file_headers(std::string const &filename)
Loads PNG file headers only.
Definition image_io.cc:334
void save_pfm_file(FloatImage::ConstPtr image, std::string const &filename)
Saves float image data to PFM file.
Definition image_io.cc:1045
void save_tiff_file(ByteImage::ConstPtr image, std::string const &filename)
Writes a TIFF to file.
Definition image_io.cc:779
void save_ppm_file(ByteImage::ConstPtr image, std::string const &filename)
Writes a 8 bit PPM file.
Definition image_io.cc:1224
void save_png_file(ByteImage::ConstPtr image, std::string const &filename, int compression_level)
Saves image data to a PNG file.
Definition image_io.cc:354
ByteImage::Ptr load_jpg_file(std::string const &filename, std::string *exif)
Loads a JPEG file.
Definition image_io.cc:454
void save_tiff_16_file(RawImage::ConstPtr image, std::string const &filename)
Writes a 16bit TIFF to file.
Definition image_io.cc:856
void save_file(ByteImage::ConstPtr image, std::string const &filename)
Saves a byte image to file, detecting file type.
Definition image_io.cc:146
ImageHeaders load_jpg_file_headers(std::string const &filename)
Loads JPEG file headers only.
Definition image_io.cc:533
FloatImage::Ptr load_pfm_file(std::string const &filename)
Loads a PFM file.
Definition image_io.cc:975
ImageHeaders load_tiff_file_headers(std::string const &filename)
Loads TIFF file headers only.
Definition image_io.cc:639
ImageType
Identifiers for image types.
Definition image_base.h:28
Image meta data.
Definition image_io.h:26