File: meta.cpp

package info (click to toggle)
satdump 1.2.2%2Bgb79af48-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 81,648 kB
  • sloc: cpp: 276,768; ansic: 164,598; lisp: 1,219; sh: 283; xml: 106; makefile: 7
file content (60 lines) | stat: -rw-r--r-- 1,647 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "meta.h"

namespace image
{
    void Image::copy_meta(const Image &img)
    {
        if (img.metadata_obj != nullptr)
        {
            set_metadata(*this, get_metadata(img));
        }
    }

    bool has_metadata(Image &img)
    {
        return img.metadata_obj != nullptr;
    }

    void set_metadata(Image &img, nlohmann::json metadata)
    {
        img.metadata_obj = (nlohmann::json *)new nlohmann::json();
        *((nlohmann::json *)img.metadata_obj) = metadata;
    }

    nlohmann::json get_metadata(const Image &img)
    {
        if (img.metadata_obj != nullptr)
            return *((nlohmann::json *)img.metadata_obj);
        else
            return nlohmann::json();
    }

    void free_metadata(const Image &img)
    {
        if (img.metadata_obj != nullptr)
            delete ((nlohmann::json *)img.metadata_obj);
    }

    bool has_metadata_proj_cfg(Image &img)
    {
        return img.metadata_obj != nullptr && get_metadata(img).contains("proj_cfg");
    }

    void set_metadata_proj_cfg(Image &img, nlohmann::json proj_cfg)
    {
        if (img.metadata_obj == nullptr)
            img.metadata_obj = (nlohmann::json *)new nlohmann::json();

        satdump::reprojection::rescaleProjectionScalarsIfNeeded(proj_cfg, img.width(), img.height());

        (*((nlohmann::json *)img.metadata_obj))["proj_cfg"] = proj_cfg;
    }

    nlohmann::json get_metadata_proj_cfg(const Image &img)
    {
        if (img.metadata_obj != nullptr && get_metadata(img).contains("proj_cfg"))
            return (*((nlohmann::json *)img.metadata_obj))["proj_cfg"];
        else
            return nlohmann::json();
    }
}