14#include <lagrange/image/ImageType.h>
20enum class FileType { png, jpg, exr, bin, unknown };
22inline FileType file_extension_to_file_type(
const std::string& extension)
24 if (
".png" == extension) {
26 }
else if (
".jpg" == extension ||
".jpeg" == extension) {
28 }
else if (
".exr" == extension) {
30 }
else if (
".bin" == extension) {
33 return FileType::unknown;
36inline std::string file_type_to_file_extension(FileType type)
39 case FileType::png:
return ".png";
40 case FileType::jpg:
return ".jpg";
41 case FileType::exr:
return ".exr";
42 case FileType::bin:
return ".bin";
43 case FileType::unknown:
return "";
48inline FileType precision_to_file_type(image::ImagePrecision precision)
51 case lagrange::image::ImagePrecision::uint8:
return FileType::png;
52 case lagrange::image::ImagePrecision::uint16:
return FileType::unknown;
53 case lagrange::image::ImagePrecision::uint32:
54 case lagrange::image::ImagePrecision::float32:
return FileType::exr;
55 case lagrange::image::ImagePrecision::int8:
56 case lagrange::image::ImagePrecision::int32:
57 case lagrange::image::ImagePrecision::float64:
return FileType::bin;
58 case lagrange::image::ImagePrecision::unknown:
59 default:
return FileType::unknown;
63inline size_t size_of_precision(image::ImagePrecision precision)
66 case lagrange::image::ImagePrecision::uint8:
67 case lagrange::image::ImagePrecision::int8:
return 1;
68 case lagrange::image::ImagePrecision::uint16:
return 2;
69 case lagrange::image::ImagePrecision::uint32:
70 case lagrange::image::ImagePrecision::int32:
71 case lagrange::image::ImagePrecision::float32:
return 4;
72 case lagrange::image::ImagePrecision::float64:
return 8;
73 case lagrange::image::ImagePrecision::unknown:
78inline std::string precision_to_bin_header(image::ImagePrecision precision)
80 if (image::ImagePrecision::int8 == precision) {
82 }
else if (image::ImagePrecision::int32 == precision) {
84 }
else if (image::ImagePrecision::float64 == precision) {
90inline image::ImagePrecision bin_header_to_precision(
const std::string& header)
92 if (
"int8" == header) {
93 return image::ImagePrecision::int8;
94 }
else if (
"int32" == header) {
95 return image::ImagePrecision::int32;
96 }
else if (
"float64" == header) {
97 return image::ImagePrecision::float64;
99 return image::ImagePrecision::unknown;
Main namespace for Lagrange.