Grok  9.7.5
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
grk::GrkImage Class Reference

#include <GrkImage.h>

Inheritance diagram for grk::GrkImage:
_grk_image

Public Member Functions

 GrkImage ()
 
bool subsampleAndReduce (uint32_t reduce)
 
bool allocCompositeData (CodingParams *cp)
 Allocate data for tile compositing. More...
 
bool canAllocInterleaved (CodingParams *cp)
 
void copyHeader (GrkImage *dest)
 Copy only header of image and its component header (no data are copied) if dest image have data, they will be freed. More...
 
void transferDataTo (GrkImage *dest)
 Transfer data to dest for each component, and null out "this" data. More...
 
void transferDataFrom (const Tile *tile_src_data)
 
GrkImageduplicate (const Tile *tile_src)
 Create new image and transfer tile buffer data. More...
 
bool composite (const GrkImage *srcImg)
 
bool compositeInterleaved (const GrkImage *srcImg)
 Copy image data to composite image. More...
 
bool greyToRGB (void)
 
bool convertToRGB (bool wholeTileDecompress)
 
bool applyColourManagement (void)
 
void convertPrecision (void)
 
bool execUpsample (void)
 
void all_components_data_free (void)
 
void postReadHeader (CodingParams *cp)
 
void validateColourSpace (void)
 
bool isSubsampled ()
 
bool validateZeroed (void)
 
bool applyColour (void)
 
bool apply_palette_clr (void)
 
bool check_color (void)
 
void apply_channel_definition (void)
 
void alloc_palette (uint8_t num_channels, uint16_t num_entries)
 
uint32_t width (void) const
 
uint32_t height (void) const
 
void print (void) const
 

Static Public Member Functions

static GrkImagecreate (grk_image *src, uint16_t numcmpts, grk_image_comp *cmptparms, GRK_COLOR_SPACE clrspc, bool doAllocation)
 Create image. More...
 
static bool allocData (grk_image_comp *imageComp, bool clear)
 Allocate data for single image component. More...
 
static bool allocData (grk_image_comp *imageComp)
 

Private Member Functions

 ~GrkImage ()
 
bool needsConversionToRGB (void)
 
bool isOpacity (uint16_t compno)
 
bool compositePlanar (const GrkImage *srcImg)
 Copy image data to composite image. More...
 
bool generateCompositeBounds (const grk_image_comp *srcComp, uint16_t compno, grk_rect32 *destWin, uint32_t *srcLineOffset)
 
bool generateCompositeBounds (uint16_t compno, grk_rect32 src, uint32_t src_stride, grk_rect32 *destWin, uint32_t *srcLineOffset)
 
bool allComponentsSanityCheck (bool equalPrecision)
 return false if : More...
 
grk_imagecreateRGB (uint16_t numcmpts, uint32_t w, uint32_t h, uint8_t prec)
 
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)
 
bool sycc444_to_rgb (void)
 
bool sycc422_to_rgb (bool oddFirstX)
 
bool sycc420_to_rgb (bool oddFirstX, bool oddFirstY)
 
bool color_sycc_to_rgb (bool oddFirstX, bool oddFirstY)
 
bool color_cmyk_to_rgb (void)
 
bool color_esycc_to_rgb (void)
 
bool applyICC (void)
 
bool cieLabToRGB (void)
 
bool componentsEqual (grk_image_comp *src, grk_image_comp *dest)
 
void scaleComponent (grk_image_comp *component, uint8_t precision)
 

Static Private Member Functions

static void copyComponent (grk_image_comp *src, grk_image_comp *dest)
 

Private Attributes

friend GrkObjectWrapperImpl< GrkImage >
 

Additional Inherited Members

- Public Attributes inherited from _grk_image
grk_object obj
 
uint32_t x0
 XOsiz: horizontal offset from the origin of the reference grid to the left side of the image area. More...
 
uint32_t y0
 YOsiz: vertical offset from the origin of the reference grid to the top side of the image area. More...
 
uint32_t x1
 Xsiz: width of the reference grid. More...
 
uint32_t y1
 Ysiz: height of the reference grid. More...
 
uint16_t numcomps
 number of components in the image More...
 
GRK_COLOR_SPACE color_space
 
bool paletteApplied_
 
bool channelDefinitionApplied_
 
bool has_capture_resolution
 
double capture_resolution [2]
 
bool has_display_resolution
 
double display_resolution [2]
 
GRK_SUPPORTED_FILE_FMT decompressFormat
 
bool forceRGB
 
bool upsample
 
grk_precisionprecision
 
uint32_t numPrecision
 
bool multiTile
 
bool splitByComponent
 
uint16_t decompressNumComps
 
uint32_t decompressWidth
 
uint32_t decompressHeight
 
uint8_t decompressPrec
 
GRK_COLOR_SPACE decompressColourSpace
 
grk_serialize_buf interleavedData
 
uint32_t rowsPerStrip
 
uint64_t packedRowBytes
 
grk_image_metameta
 
grk_image_compcomps
 

Constructor & Destructor Documentation

◆ GrkImage()

grk::GrkImage::GrkImage ( )

References _grk_image::obj, and _grk_object::wrapper.

Referenced by create(), and duplicate().

◆ ~GrkImage()

grk::GrkImage::~GrkImage ( )
private

Member Function Documentation

◆ all_components_data_free()

void grk::GrkImage::all_components_data_free ( void  )

◆ allComponentsSanityCheck()

bool grk::GrkImage::allComponentsSanityCheck ( bool  equalPrecision)
private

return false if :

  1. any component's data buffer is NULL
  2. any component's precision is either 0 or greater than GRK_MAX_SUPPORTED_IMAGE_PRECISION
  3. any component's signedness does not match another component's signedness
  4. any component's precision does not match another component's precision
  5. any component's width,stride or height does not match another component's width,stride or height (if equalPrecision is true)

References _grk_image::comps, grk::GRK_ERROR(), GRK_MAX_SUPPORTED_IMAGE_PRECISION, grk::GRK_WARN(), and _grk_image::numcomps.

Referenced by applyICC(), cieLabToRGB(), color_cmyk_to_rgb(), and color_esycc_to_rgb().

◆ alloc_palette()

void grk::GrkImage::alloc_palette ( uint8_t  num_channels,
uint16_t  num_entries 
)

◆ allocCompositeData()

bool grk::GrkImage::allocCompositeData ( CodingParams cp)

Allocate data for tile compositing.

Returns
true if successful

References allocData(), canAllocInterleaved(), _grk_image::comps, grk::GRK_ERROR(), _grk_image::multiTile, and _grk_image::numcomps.

◆ allocData() [1/2]

bool grk::GrkImage::allocData ( grk_image_comp imageComp)
static

References allocData().

◆ allocData() [2/2]

bool grk::GrkImage::allocData ( grk_image_comp imageComp,
bool  clear 
)
static

◆ apply_channel_definition()

void grk::GrkImage::apply_channel_definition ( void  )

◆ apply_palette_clr()

bool grk::GrkImage::apply_palette_clr ( void  )

◆ applyColour()

bool grk::GrkImage::applyColour ( void  )

◆ applyColourManagement()

bool grk::GrkImage::applyColourManagement ( void  )

◆ applyICC()

bool grk::GrkImage::applyICC ( void  )
private

◆ canAllocInterleaved()

bool grk::GrkImage::canAllocInterleaved ( CodingParams cp)

◆ check_color()

bool grk::GrkImage::check_color ( void  )

◆ cieLabToRGB()

bool grk::GrkImage::cieLabToRGB ( void  )
private

◆ color_cmyk_to_rgb()

bool grk::GrkImage::color_cmyk_to_rgb ( void  )
private

◆ color_esycc_to_rgb()

bool grk::GrkImage::color_esycc_to_rgb ( void  )
private

◆ color_sycc_to_rgb()

bool grk::GrkImage::color_sycc_to_rgb ( bool  oddFirstX,
bool  oddFirstY 
)
private

◆ componentsEqual()

bool grk::GrkImage::componentsEqual ( grk_image_comp src,
grk_image_comp dest 
)
private

◆ composite()

bool grk::GrkImage::composite ( const GrkImage srcImg)

◆ compositeInterleaved()

bool grk::GrkImage::compositeInterleaved ( const GrkImage srcImg)

◆ compositePlanar()

bool grk::GrkImage::compositePlanar ( const GrkImage srcImg)
private

Copy image data to composite image.

Parameters
srcImgsource image
Returns
: true if successful

References _grk_image::comps, generateCompositeBounds(), grk::GRK_WARN(), grk::grk_rect< T >::height(), _grk_image::numcomps, grk::grk_rect< T >::width(), grk::grk_rect< T >::x0, and grk::grk_rect< T >::y0.

Referenced by composite().

◆ convertPrecision()

void grk::GrkImage::convertPrecision ( void  )

◆ convertToRGB()

bool grk::GrkImage::convertToRGB ( bool  wholeTileDecompress)

◆ copyComponent()

void grk::GrkImage::copyComponent ( grk_image_comp src,
grk_image_comp dest 
)
staticprivate

◆ copyHeader()

void grk::GrkImage::copyHeader ( GrkImage dest)

◆ create()

GrkImage * grk::GrkImage::create ( grk_image src,
uint16_t  numcmpts,
grk_image_comp cmptparms,
GRK_COLOR_SPACE  clrspc,
bool  doAllocation 
)
static

◆ createRGB()

grk_image * grk::GrkImage::createRGB ( uint16_t  numcmpts,
uint32_t  w,
uint32_t  h,
uint8_t  prec 
)
private

◆ duplicate()

GrkImage * grk::GrkImage::duplicate ( const Tile src_tile)

◆ execUpsample()

bool grk::GrkImage::execUpsample ( void  )

◆ generateCompositeBounds() [1/2]

bool grk::GrkImage::generateCompositeBounds ( const grk_image_comp srcComp,
uint16_t  compno,
grk_rect32 destWin,
uint32_t *  srcLineOffset 
)
private

◆ generateCompositeBounds() [2/2]

bool grk::GrkImage::generateCompositeBounds ( uint16_t  compno,
grk_rect32  src,
uint32_t  src_stride,
grk_rect32 destWin,
uint32_t *  srcLineOffset 
)
private

◆ greyToRGB()

bool grk::GrkImage::greyToRGB ( void  )

◆ height()

uint32_t grk::GrkImage::height ( void  ) const

References _grk_image::y0, and _grk_image::y1.

◆ isOpacity()

bool grk::GrkImage::isOpacity ( uint16_t  compno)
private

◆ isSubsampled()

bool grk::GrkImage::isSubsampled ( )

◆ needsConversionToRGB()

bool grk::GrkImage::needsConversionToRGB ( void  )
private

◆ postReadHeader()

void grk::GrkImage::postReadHeader ( CodingParams cp)

◆ print()

void grk::GrkImage::print ( void  ) const

◆ scaleComponent()

void grk::GrkImage::scaleComponent ( grk_image_comp component,
uint8_t  precision 
)
private

◆ subsampleAndReduce()

bool grk::GrkImage::subsampleAndReduce ( uint32_t  reduce)

◆ sycc420_to_rgb()

bool grk::GrkImage::sycc420_to_rgb ( bool  oddFirstX,
bool  oddFirstY 
)
private

◆ sycc422_to_rgb()

bool grk::GrkImage::sycc422_to_rgb ( bool  oddFirstX)
private

◆ sycc444_to_rgb()

bool grk::GrkImage::sycc444_to_rgb ( void  )
private

◆ sycc_to_rgb()

void grk::GrkImage::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 
)
private

◆ transferDataFrom()

void grk::GrkImage::transferDataFrom ( const Tile tile_src_data)

◆ transferDataTo()

void grk::GrkImage::transferDataTo ( GrkImage dest)

Transfer data to dest for each component, and null out "this" data.

Transfer data to dest for each component, and null out this data.

Assumption: "this" and dest have the same number of components

Assumption: this and dest have the same number of components

References _grk_image::comps, _grk_serialize_buf::data, grk_image_single_component_data_free(), _grk_image::interleavedData, and _grk_image::numcomps.

◆ validateColourSpace()

void grk::GrkImage::validateColourSpace ( void  )

◆ validateZeroed()

bool grk::GrkImage::validateZeroed ( void  )

◆ width()

uint32_t grk::GrkImage::width ( void  ) const

References _grk_image::x0, and _grk_image::x1.

Member Data Documentation

◆ GrkObjectWrapperImpl< GrkImage >

friend grk::GrkImage::GrkObjectWrapperImpl< GrkImage >
private

The documentation for this class was generated from the following files: