MeshLib C++ Docs
Loading...
Searching...
No Matches
MRTiffIO.h
Go to the documentation of this file.
1#pragma once
2#include "MRMeshFwd.h"
3#if !defined( __EMSCRIPTEN__) && !defined( MRMESH_NO_TIFF )
4#include "MRExpected.h"
5#include "MRVector2.h"
6
7#include <filesystem>
8#include <string>
9
10namespace MR
11{
14
15
17{
18 enum class SampleType
19 {
20 Unknown,
21 Uint,
22 Int,
23 Float
24 } sampleType{ SampleType::Unknown };
25
26 enum class ValueType
27 {
28 Unknown,
29 Scalar,
30 RGB,
31 RGBA,
32 } valueType{ ValueType::Unknown };
33
36
38 Vector2i imageSize;
39
40 bool operator==( const BaseTiffParameters& ) const = default;
41};
42
44{
46 bool tiled = false;
47 Vector2i tileSize;
48 int layers = 1;
50 int depth = 0;
51
52 bool operator==( const TiffParameters& ) const = default;
53};
54
56MRMESH_API bool isTIFFFile( const std::filesystem::path& path );
57
59MRMESH_API Expected<TiffParameters> readTiffParameters( const std::filesystem::path& path );
60
62{
64 uint8_t* bytes{ nullptr };
66 size_t size{ 0 };
70 AffineXf3f* p2wXf{ nullptr };
72 bool convertToFloat{ true };
74 float* min{ nullptr };
75 float* max{ nullptr };
76};
77
79MRMESH_API Expected<void> readRawTiff( const std::filesystem::path& path, RawTiffOutput& output );
80
82{
85 const AffineXf3f* xf = nullptr;
87 std::string noData;
88};
89
91MRMESH_API Expected<void> writeRawTiff( const uint8_t* bytes, const std::filesystem::path& path,
92 const WriteRawTiffParams& params );
93[[deprecated( "use WriteRawTiffParams version instead" )]]
94inline Expected<void> writeRawTiff( const uint8_t* bytes, const std::filesystem::path& path,
95 const BaseTiffParameters& params, const AffineXf3f* xf )
96{
97 return writeRawTiff( bytes, path, { .baseParams = params, .xf = xf } );
98}
99
100}
101
102#endif
uint8_t * bytes
main output data, should be allocated
Definition MRTiffIO.h:64
Vector2i tileSize
Definition MRTiffIO.h:47
std::string noData
optional NoData value written to GDAL_NODATA
Definition MRTiffIO.h:87
MRMESH_API Expected< void > readRawTiff(const std::filesystem::path &path, RawTiffOutput &output)
load values from tiff to ouput.data
float * min
min max
Definition MRTiffIO.h:74
ValueType
Definition MRTiffIO.h:27
MRMESH_API bool isTIFFFile(const std::filesystem::path &path)
returns true if given file is tiff
int bytesPerSample
size of internal data in file
Definition MRTiffIO.h:35
TiffParameters * params
optional params output
Definition MRTiffIO.h:68
AffineXf3f * p2wXf
optional pixel to world transform
Definition MRTiffIO.h:70
enum MR::BaseTiffParameters::SampleType Unknown
bool operator==(const BaseTiffParameters &) const =default
bool convertToFloat
input if true loads tiff file as floats array
Definition MRTiffIO.h:72
bool operator==(const TiffParameters &) const =default
tl::expected< T, E > Expected
Definition MRExpected.h:31
MRMESH_API Expected< TiffParameters > readTiffParameters(const std::filesystem::path &path)
reads parameters of tiff file
int layers
Definition MRTiffIO.h:48
const AffineXf3f * xf
optional transformation data written to GeoTIFF's ModelTransformationTag
Definition MRTiffIO.h:85
SampleType
Definition MRTiffIO.h:19
float * max
Definition MRTiffIO.h:75
MRMESH_API Expected< void > writeRawTiff(const uint8_t *bytes, const std::filesystem::path &path, const WriteRawTiffParams &params)
writes bytes to tiff file
Vector2i imageSize
size of image if not layered, otherwise size of layer
Definition MRTiffIO.h:38
int depth
tile depth (if several layers)
Definition MRTiffIO.h:50
BaseTiffParameters baseParams
Definition MRTiffIO.h:83
size_t size
allocated data size
Definition MRTiffIO.h:66
bool tiled
true if tif file is tiled
Definition MRTiffIO.h:46
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRTiffIO.h:17
Definition MRTiffIO.h:62
Definition MRTiffIO.h:44
Definition MRTiffIO.h:82