フレームを表示

L_MultiplyBitmap

フレームを表示

#include "l_bitmap.h"

L_LTIMGCLR_API L_INT L_MultiplyBitmappBitmapuFactor、uFlags

pBITMAPHANDLE pBitmap;

/* ビットマップハンドルへのポインター*/

L_UINT uFactor;

/* 増倍率*/

L_UINT32 uFlags;

/* フラグ*/

100で割ったuFactor値と等しい値によって指定されたビットマップで色を乗算することによって、ビットマップで明度を増減します。

パラメーター

説明

pBitmap

変更されるためにビットマップを参照文に引用しているビットマップハンドルへのポインター。

uFactor

image値を乗算するとき、使われる要因を表す整数。使われる要因は、uFactor/100と等しいです。

uFlags

今後使うため確保されます。0でなければなりません。

戻り値

SUCCESS

関数は成功しました。

<1

エラーが発生しました。リターンコードを参照してください

コメント

この関数は、100で割ったuFactor値と等しい値によって指定されたビットマップで色を乗算することによってビットマップで明度を増減するのに用いられます。たとえば、uFactorが131であるならば、指定されたビットマップの色は1.31で乗算されます。

この関数は、12と16ビットグレースケールと48と64ビットカラーイメージをサポートします。12と16ビットグレースケールと48と64ビットカラーイメージのサポートは、DocumentとMedical画像化ツールキットで利用できます。

状況表示バーを更新するか、この関数の実行の間、ユーザー割り込みを検出するために、L_SetStatusCallbackを参照します。

この関数は、32ビットグレースケールイメージをサポートしません。32ビットグレースケールimageがこの関数に渡されるならば、それはエラーコードERROR_GRAY32_UNSUPPORTEDを返します。

この関数は、画像データの中で明度を増減します。imageがLUTを持っているならば、関数はLUT(画像データでない)の上で機能します。画像にLUTがあり画像データ上で作業する場合は、BITMAPHANDLE構造体の UseLUTフラグをFalseに設定します。そして、関数(UseLUTが以下のようにTRUEにフラグを立てるリセット)を呼び出した後に:

pBitmap->Flags.UseLUT = FALSE;

 L_MultiplyBitmap(pBitmap、151、0);

pBitmap->Flags.UseLUT = TRUE;

必須のDLLとライブラリ

LTIMGCLR

ツールキットバージョンに基づいた正確なDLLとライブラリのリストについては、「アプリケーションとともに配布するファイル」を参照してください

プラットホーム

Win32、x64、Linux

参照

関数:

L_ChangeBitmapIntensity, L_GammaCorrectBitmap, L_ChangeBitmapContrast, L_HistoContrastBitmap, L_StretchBitmapIntensity, L_RemapBitmapIntensity, L_ChangeBitmapHue, L_ChangeBitmapSaturation, L_HistoEqualizeBitmap, L_FillBitmap, L_GetPixelColor, L_PutPixelColor, L_AddWeightedBitmaps, L_GetBitmapHistogram, L_WindowLevel, L_ChannelMix, L_DeinterlaceBitmap, L_DesaturateBitmap, L_EdgeDetectStatisticalBitmap, L_LightControlBitmap, L_SmoothEdgesBitmap, L_AutoColorLevelBitmap, L_ColorLevelBitmap, L_CorrelationBitmap, L_GrayScaleToDuotone, L_GrayScaleToMultitone, L_HolesRemovalBitmapRgn, L_SelectiveColorBitmap, L_SkeletonBitmap, L_DlgMultiply, L_BricksTextureBitmap, L_CanvasBitmap, L_DisplaceMapBitmap, L_FragmentBitmap, L_VignetteBitmap

トピック:

ラスター画像は機能します:輝度値の変更

 

明度とコントラストの変更

 

ラスター画像は機能します:明度とコントラストの変更

サンプル

このサンプルはビットマップをロードして、1.51の要因でそれを乗算します

#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName


L_LTIMGTEX_API  L_INT MultiplyBitmapExample(L_VOID)
{
   L_INT nRet;
   BITMAPHANDLE LeadBitmap;   /* Bitmap handle to hold the loaded image. */
   /* Load the bitmap, keeping the bits per pixel of the file */
   nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT("IMAGE1.CMP")), &LeadBitmap, sizeof(BITMAPHANDLE), 0, ORDER_BGR, NULL, NULL);
   if(nRet !=SUCCESS)
      return nRet;
   /* Multiply the colors of the bitmap with 1.51*/
   nRet = L_MultiplyBitmap(&LeadBitmap, 151, 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;
}