Grok 13.0.2
GrkImage.h
Go to the documentation of this file.
1#pragma once
2
3#include "grk_includes.h"
4
5namespace grk
6{
7struct Tile;
8struct CodingParams;
9struct TileComponent;
10
11const uint32_t singleTileRowsPerStrip = 32;
12
14{
15 public:
17 virtual ~GrkImageMeta();
18 void releaseColor(void);
20 void allocPalette(uint8_t num_channels, uint16_t num_entries);
21};
22
23class GrkImage : public grk_image
24{
26
27 public:
28 GrkImage();
29 bool subsampleAndReduce(uint32_t reduce);
41 static GrkImage* create(grk_image* src, uint16_t numcmpts, grk_image_comp* cmptparms,
42 GRK_COLOR_SPACE clrspc, bool doAllocation);
51 static bool allocData(grk_image_comp* imageComp, bool clear);
52
60 static bool allocData(grk_image_comp* imageComp);
66 bool allocCompositeData(void);
67
76 void copyHeader(GrkImage* dest);
81 void transferDataTo(GrkImage* dest);
82 void transferDataFrom(const Tile* tile_src_data);
83 GrkImage* duplicate(const Tile* tile_src);
84 bool composite(const GrkImage* src);
85 bool compositeInterleaved(const GrkImage* src);
86 bool compositeInterleaved(const Tile* src, uint32_t yBegin, uint32_t yEnd);
87 bool greyToRGB(void);
88 bool convertToRGB(bool wholeTileDecompress);
89 bool applyColourManagement(void);
90 bool applyICC(void);
91 bool validateICC(void);
92 void convertPrecision(void);
93 bool execUpsample(void);
94 void all_components_data_free(void);
96 void validateColourSpace(void);
97 bool isSubsampled();
98 bool validateZeroed(void);
99 bool applyColour(void);
100 bool apply_palette_clr(void);
101 bool check_color(void);
102 void apply_channel_definition(void);
103 void allocPalette(uint8_t num_channels, uint16_t num_entries);
104 uint32_t width(void) const;
105 uint32_t height(void) const;
106 void print(void) const;
107 bool componentsEqual(bool checkPrecision);
108 bool componentsEqual(uint16_t firstNComponents, bool checkPrecision);
109
110 private:
111 ~GrkImage();
113 std::string getColourSpaceString(void);
114 std::string getICCColourSpaceString(cmsColorSpaceSignature color_space);
115 bool isValidICCColourSpace(uint32_t signature);
116 bool needsConversionToRGB(void);
117 bool isOpacity(uint16_t compno);
118 bool compositePlanar(const GrkImage* srcImg);
119 bool generateCompositeBounds(const grk_image_comp* srcComp, uint16_t destCompno,
120 grk_rect32* destWin);
121 bool generateCompositeBounds(grk_rect32 src, uint16_t destCompno, grk_rect32* destWin);
122 bool allComponentsSanityCheck(bool equalPrecision);
123 grk_image* createRGB(uint16_t numcmpts, uint32_t w, uint32_t h, uint8_t prec);
124 void sycc_to_rgb(int32_t offset, int32_t upb, int32_t y, int32_t cb, int32_t cr, int32_t* out_r,
125 int32_t* out_g, int32_t* out_b);
126 bool sycc444_to_rgb(void);
127 bool sycc422_to_rgb(bool oddFirstX);
128 bool sycc420_to_rgb(bool oddFirstX, bool oddFirstY);
129 bool color_sycc_to_rgb(bool oddFirstX, bool oddFirstY);
130 bool color_cmyk_to_rgb(void);
131 bool color_esycc_to_rgb(void);
132 bool cieLabToRGB(void);
133 bool componentsEqual(grk_image_comp* src, grk_image_comp* dest, bool checkPrecision);
134 static void copyComponent(grk_image_comp* src, grk_image_comp* dest);
135 void scaleComponent(grk_image_comp* component, uint8_t precision);
136};
137
138} // namespace grk
Definition GrkImage.h:24
bool isSubsampled()
Definition GrkImage.cpp:316
void apply_channel_definition(void)
Definition GrkImage.cpp:472
GrkImage()
Definition GrkImage.cpp:5
bool check_color(void)
Definition GrkImage.cpp:530
bool color_esycc_to_rgb(void)
Definition GrkImage_Conversion.cpp:906
bool sycc422_to_rgb(bool oddFirstX)
Definition GrkImage_Conversion.cpp:582
bool allComponentsSanityCheck(bool equalPrecision)
return false if :
Definition GrkImage_Conversion.cpp:26
bool compositeInterleaved(const GrkImage *src)
Interleave image data and copy to interleaved composite image.
Definition GrkImage.cpp:1010
bool subsampleAndReduce(uint32_t reduce)
Definition GrkImage.cpp:175
bool convertToRGB(bool wholeTileDecompress)
Definition GrkImage_Conversion.cpp:404
static GrkImage * create(grk_image *src, uint16_t numcmpts, grk_image_comp *cmptparms, GRK_COLOR_SPACE clrspc, bool doAllocation)
Create image.
Definition GrkImage.cpp:85
void copyHeader(GrkImage *dest)
Copy only header of image and its component header (no data are copied) if dest image have data,...
Definition GrkImage.cpp:233
bool color_sycc_to_rgb(bool oddFirstX, bool oddFirstY)
Definition GrkImage_Conversion.cpp:809
void print(void) const
Definition GrkImage.cpp:31
void sycc_to_rgb(int32_t offset, int32_t upb, int32_t y, int32_t cb, int32_t cr, int32_t *out_r, int32_t *out_g, int32_t *out_b)
Definition GrkImage_Conversion.cpp:501
bool applyColourManagement(void)
Convert to sRGB.
Definition GrkImage_Conversion.cpp:1157
bool validateICC(void)
Definition GrkImage_Conversion.cpp:1055
bool allocCompositeData(void)
Allocate data for tile compositing.
Definition GrkImage.cpp:821
bool greyToRGB(void)
Definition GrkImage_Conversion.cpp:355
void validateColourSpace(void)
Definition GrkImage.cpp:326
static void copyComponent(grk_image_comp *src, grk_image_comp *dest)
Definition GrkImage.cpp:42
bool sycc420_to_rgb(bool oddFirstX, bool oddFirstY)
Definition GrkImage_Conversion.cpp:673
GrkImage * duplicate(const Tile *tile_src)
Create new image and transfer tile buffer data.
Definition GrkImage.cpp:888
bool compositePlanar(const GrkImage *srcImg)
Copy planar image data to planar composite image.
Definition GrkImage.cpp:1068
bool apply_palette_clr(void)
Definition GrkImage.cpp:678
void convertPrecision(void)
Definition GrkImage_Conversion.cpp:276
uint32_t height(void) const
Definition GrkImage.cpp:26
void transferDataFrom(const Tile *tile_src_data)
Definition GrkImage.cpp:915
static bool allocData(grk_image_comp *imageComp, bool clear)
Allocate data for single image component.
Definition GrkImage.cpp:292
bool sycc444_to_rgb(void)
Definition GrkImage_Conversion.cpp:530
bool color_cmyk_to_rgb(void)
Definition GrkImage_Conversion.cpp:851
bool applyICC(void)
Definition GrkImage_Conversion.cpp:1218
bool cieLabToRGB(void)
Definition GrkImage_Conversion.cpp:1487
std::string getColourSpaceString(void)
Definition GrkImage_Conversion.cpp:967
bool generateCompositeBounds(const grk_image_comp *srcComp, uint16_t destCompno, grk_rect32 *destWin)
Definition GrkImage.cpp:1126
bool applyColour(void)
Definition GrkImage.cpp:457
bool isOpacity(uint16_t compno)
Definition GrkImage.cpp:335
bool isValidICCColourSpace(uint32_t signature)
Definition GrkImage_Conversion.cpp:1030
bool needsConversionToRGB(void)
Definition GrkImage_Conversion.cpp:397
void postReadHeader(CodingParams *cp)
Definition GrkImage.cpp:344
bool componentsEqual(bool checkPrecision)
Definition GrkImage.cpp:71
~GrkImage()
Definition GrkImage.cpp:11
void transferDataTo(GrkImage *dest)
Transfer data to dest for each component, and null out "this" data.
Definition GrkImage.cpp:856
bool execUpsample(void)
Definition GrkImage_Conversion.cpp:91
void scaleComponent(grk_image_comp *component, uint8_t precision)
Definition GrkImage_Conversion.cpp:245
bool composite(const GrkImage *src)
Definition GrkImage.cpp:930
static void single_component_data_free(grk_image_comp *comp)
Definition GrkImage.cpp:1134
uint32_t width(void) const
Definition GrkImage.cpp:22
void all_components_data_free(void)
Definition GrkImage.cpp:166
std::string getICCColourSpaceString(cmsColorSpaceSignature color_space)
Definition GrkImage_Conversion.cpp:1003
void allocPalette(uint8_t num_channels, uint16_t num_entries)
Definition GrkImage.cpp:453
grk_image * createRGB(uint16_t numcmpts, uint32_t w, uint32_t h, uint8_t prec)
Definition GrkImage_Conversion.cpp:459
bool validateZeroed(void)
Definition GrkImage.cpp:435
Definition GrkImage.h:14
void releaseColor(void)
Definition GrkImage.cpp:1189
void allocPalette(uint8_t num_channels, uint16_t num_entries)
Definition GrkImage.cpp:1159
virtual ~GrkImageMeta()
Definition GrkImage.cpp:1153
GrkImageMeta()
Definition GrkImage.cpp:1143
void releaseColorPalatte()
Definition GrkImage.cpp:1177
Definition GrkObjectWrapper.h:23
enum _GRK_COLOR_SPACE GRK_COLOR_SPACE
Grok supported color spaces.
Copyright (C) 2016-2024 Grok Image Compression Inc.
Definition ICacheable.h:20
const uint32_t singleTileRowsPerStrip
Definition GrkImage.h:11
Image component.
Definition grok.h:730
Image meta data: colour, IPTC and XMP.
Definition grok.h:776
Grok image.
Definition grok.h:792
grk_precision * precision
Definition grok.h:816
GRK_COLOR_SPACE color_space
Definition grok.h:806
Coding parameters.
Definition CodingParams.h:245
Definition TileProcessor.h:39