#include "l_bitmap.h"
L_LTIMGCLR_API L_INT L_ChangeHueSatIntBitmap(pBitmap、nHue、nSaturation、nIntensity、pHsiData、uHsiDataCount、uFlags)
pBITMAPHANDLE pBitmap; |
/* ビットマップハンドルへのポインター*/ |
L_INT nHue; |
/* 色相を変更する角ばった量*/ |
L_INT nSaturation; |
/* 彩度を変更する量*/ |
L_INT nIntensity; |
/* 強度を変更する量*/ |
pHSIDATA pHsiData; |
/* HSIDATA構造体の配列へのポインター*/ |
L_UINT uHsiDataCount; |
/* pHsiData配列の多くの構造体*/ |
L_UINT32 uFlags; |
/* フラグ*/ |
すべての色相、彩度と明度を変更するか、imageで色を指定しました。
パラメーター |
説明 |
pBitmap |
エフェクトを適用するビットマップを参照文に引用するビットマップハンドルへのポインター。 |
nHue |
100分の1°単位で、色相を変更する角ばった量。有効な値は、18000から18000の範囲です。この値は、内部で100で割り算されます。 |
nSaturation |
10分の1単位で、彩度を変更するパーセンテージ量。有効な値は、1000から1000の範囲です。この値は、内部で10で割り算されます。負の値のときは、色の彩度が減少します。正の値のときは、彩度が増加します。彩度レベルは、現在の彩度レベルのパーセント値だけ増減します。たとえば、現在の飽和レベル「L」の20%の増加は同様に値L = 0.20の* L.に新しい飽和レベル「L1」を発生します。そして、彩度がレベル調整する(L1 = L + 1.0 * L)飽和レベル100%のダブルスを増やします。彩度レベルを100%減らすと、新しい彩度レベルは0に設定されます。このプロセスは、ピクセルごとに実行されます。新しい値が1000を超えると、彩度が1000(最大値)に設定されます。 |
nIntensity |
10分の1単位で、強度を変更するパーセンテージ量。有効値は、1000(黒い)年から1000(白い)まで変動します。この値は、内部で10で割り算されます。正の値は、ビットマップimageの明度を(または輝かせる)増やします。負の数は、ビットマップimageの明度を(または暗くする)減少させます。 |
pHsiData |
変更されるカラーレンジにつきHSIDATA構造体の配列へのポインター。 |
uHsiDataCount |
pHsiData配列で構造体の数えます。 |
uFlags |
今後使うため確保されます。0でなければなりません。 |
戻り値
SUCCESS |
関数は成功しました。 |
<1 |
エラーが発生しました。リターンコードを参照してください |
コメント
この関数は、符合付きデータイメージをサポートしません。符合付きデータイメージがこの関数に渡されるならば、それはエラーコードERROR_SIGNED_DATA_NOT_SUPPORTEDを返します。
この関数はL_ChangeBitmapHue(L_ChangeBitmapSaturation)で見つけられる基本的な機能性を結合します、そして、L_ChangeBitmapIntensityは機能します。また、特別なオプションは、LPHSIDATA構造体で指定されていることがありえます。
pHsiData ->uStructSizeは、この関数を呼び出す前に、sizeof(HSIDATA)に設定されなければなりません。構造の配列のために、配列の最初の構造体だけは、uStructSizeメンバを設定しておく必要があります。
全く一度に全体的な色相、彩度と強度を変更するために、主機能でuHsiDataCountのためにpHsiDataと0のためにNULLを渡します。別にパラメータを調節するか、連続したパスの調整をして、構造体を使って、概してnHue、nSaturationとnIntensityパラメータのために0を渡すことは、機能します。
HSIDATA構造体で範囲を使うことの詳細については、HSIDATAを参照します。
この関数は、12と16ビットグレースケールと48と64ビットカラーイメージをサポートします。12と16ビットグレースケールと48と64ビットカラーイメージのサポートは、DocumentとMedical画像化ツールキットで利用できます。
状況表示バーを更新するか、この関数の実行の間、ユーザー割り込みを検出するために、L_SetStatusCallbackを参照します。
この関数は、32ビットグレースケールイメージをサポートしません。32ビットグレースケールimageがこの関数に渡されるならば、それはエラーコードERROR_GRAY32_UNSUPPORTEDを返します。
必須のDLLとライブラリ
ツールキットバージョンに基づいた正確なDLLとライブラリのリストについては、「アプリケーションとともに配布するファイル」を参照してください。 |
Win32、x64、Linux。
参照
サンプル
#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName L_LTIMGTEX_API L_INT ChangeHueSatIntBitmapExample(L_VOID) { L_INT nRet; BITMAPHANDLE LeadBitmap; /* Bitmap handle for the image */ HSIDATA HsiData; /*Color Range Information structure*/ /* Load a bitmap at 24 bits per pixel */ nRet = L_LoadBitmap(MAKE_IMAGE_PATH(TEXT("ImageProcessingDemo\\Image1.jpg")), &LeadBitmap, sizeof(BITMAPHANDLE), 24, ORDER_BGR, NULL, NULL); if(nRet !=SUCCESS) return nRet; /*Change bitmap hue, saturation, and brightness */ HsiData.uStructSize = sizeof(HSIDATA); HsiData.nHue =18000; HsiData.nSaturation = 0; HsiData. nIntensity = 0; HsiData.nOuterLow =315; HsiData.nOuterHigh = 45; HsiData.nInnerLow = 345; HsiData.nInnerHigh = 15; /* change the red color to green */ nRet = L_ChangeHueSatIntBitmap (&LeadBitmap, 0, 0, 0, &HsiData, 1, 0); if(nRet !=SUCCESS) return nRet; nRet = L_SaveBitmap(MAKE_IMAGE_PATH(TEXT("Result.BMP")), &LeadBitmap, FILE_BMP, 24, 0, NULL); if(nRet !=SUCCESS) return nRet; //free bitmap if(LeadBitmap.Flags.Allocated) L_FreeBitmap(&LeadBitmap); return SUCCESS; }