AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
AG903_PgpMgrGetDGCLUT 関数

濃度変換テーブルハンドル取得

Syntax
C++
int32_t AG903_PgpMgrGetDGCLUT(uint8_t red[256], uint8_t green[256], uint8_t blue[256], AG903_PgpMgrDGCLookupTable ** table);
引数 
説明 
uint8_t red[256] 
[in] 濃度変換テーブルのRed値のテーブルを指定します。 
uint8_t green[256] 
[in] 濃度変換テーブルのGreen値のテーブルを指定します。 
uint8_t blue[256] 
[in] 濃度変換テーブルのBlue値のテーブルを指定します。 
AG903_PgpMgrDGCLookupTable ** table 
[out] 取得した濃度変換テーブルハンドルを格納するポインタを指定します。 

取得結果

返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
red、green、blueのいずれかにNULLが指定された場合 tableにNULLが指定された場合 
-AG903_ENOMEM 
濃度変換テーブルハンドル数の合計値が最大ハンドル数を超える場合 

濃度変換テーブルを取得します。

1: int32_t AG903_PgpMgrGetDGCLUT(uint8_t red[256], uint8_t green[256], uint8_t blue[256], AG903_PgpMgrDGCLookupTable **table) 2: { 3: int i, j; 4: 5: 6: if ((red == NULL) || (green == NULL) || (blue == NULL) || (table == NULL)) { 7: return -AG903_EINVAL; 8: } 9: 10: if ((PgpContext.num_dgc_lut + 1) > AG903_PGP_MGR_MAX_DGC_LUT) { 11: return -AG903_ENOMEM; 12: } 13: 14: 15: for (i = 0; i < AG903_PGP_MGR_MAX_DGC_LUT; i++) { 16: if (PgpContext.dgc_lut[i].is_used == false) { 17: PgpContext.dgc_lut[i].is_used = true; 18: PgpContext.dgc_lut[i].id = AG903_PGP_MGR_DGC_LUT_ID; 19: PgpContext.dgc_lut[i].ref_cnt = 0; 20: 21: for (j = 0; j < 256; j++) { 22: PgpContext.dgc_lut[i].lut_data[0][j] = blue[j]; 23: PgpContext.dgc_lut[i].lut_data[1][j] = green[j]; 24: PgpContext.dgc_lut[i].lut_data[2][j] = red[j]; 25: } 26: *table = &PgpContext.dgc_lut[i]; 27: break; 28: } 29: } 30: 31: PgpContext.num_dgc_lut++; 32: 33: return AG903_ENONE; 34: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.