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::uint32:
53 case lagrange::image::ImagePrecision::float32:
return FileType::exr;
54 case lagrange::image::ImagePrecision::int8:
55 case lagrange::image::ImagePrecision::int32:
56 case lagrange::image::ImagePrecision::float64:
return FileType::bin;
57 case lagrange::image::ImagePrecision::unknown:
58 default:
return FileType::unknown;
62inline size_t size_of_precision(image::ImagePrecision precision)
65 case lagrange::image::ImagePrecision::uint8:
66 case lagrange::image::ImagePrecision::int8:
return 1;
67 case lagrange::image::ImagePrecision::uint32:
68 case lagrange::image::ImagePrecision::int32:
69 case lagrange::image::ImagePrecision::float32:
return 4;
70 case lagrange::image::ImagePrecision::float64:
return 8;
71 case lagrange::image::ImagePrecision::unknown:
76inline std::string precision_to_bin_header(image::ImagePrecision precision)
78 if (image::ImagePrecision::int8 == precision) {
80 }
else if (image::ImagePrecision::int32 == precision) {
82 }
else if (image::ImagePrecision::float64 == precision) {
88inline image::ImagePrecision bin_header_to_precision(
const std::string& header)
90 if (
"int8" == header) {
91 return image::ImagePrecision::int8;
92 }
else if (
"int32" == header) {
93 return image::ImagePrecision::int32;
94 }
else if (
"float64" == header) {
95 return image::ImagePrecision::float64;
97 return image::ImagePrecision::unknown;
Main namespace for Lagrange.
Definition: AABBIGL.h:30