Lagrange
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Modules Pages
convert_image.h
1/*
2 * Copyright 2023 Adobe. All rights reserved.
3 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License. You may obtain a copy
5 * of the License at http://www.apache.org/licenses/LICENSE-2.0
6 *
7 * Unless required by applicable law or agreed to in writing, software distributed under
8 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9 * OF ANY KIND, either express or implied. See the License for the specific language
10 * governing permissions and limitations under the License.
11 */
12#pragma once
13
14#include <lagrange/fs/filesystem.h>
15#include <lagrange/image/ImageType.h>
16
17namespace lagrange {
18namespace image_io {
19
20template <typename SRC, typename DST, typename CONVERTOR>
21bool convert_image_file(
22 const fs::path& path_src,
23 const fs::path& path_dst,
24 const CONVERTOR& convertor)
25{
26 image::ImageView<SRC> src;
27 image::ImageView<DST> dst;
28 return load_image(path_src, src) && dst.convert_from(src, 1, convertor) &&
29 save_image(path_dst, dst);
30}
31
32template <typename SRC, typename DST>
33bool convert_image_file(const fs::path& path_src, const fs::path& path_dst)
34{
35 return convert_image_file(path_src, path_dst, image::convert_image_pixel<SRC, DST>());
36}
37
38} // namespace image_io
39} // namespace lagrange
Main namespace for Lagrange.
Definition: AABBIGL.h:30