フレームを表示

L_IntelligentUpScaleBitmap

フレームを表示

#include "l_bitmap.h"

L_LTIMGSFX_API L_INT L_IntelligentUpScaleBitmap(pBitmap、pMaskBitmap、crRemoveObjectColor、crPreserveObjectColor、nNewWidth、nWidthUpScalingFactor、nNewHeight、nHeightUpScalingFactor、nUpScalingOrder、uFlags)

pBITMAPHANDLE pBitmap;

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

pBITMAPHANDLE pMaskBitmap;

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

COLORREF crRemoveObjectColor;

/* 削除された領域のカラー*/

COLORREF crPreserveObjectColor;

/* 保たれた領域のカラー*/

L_INT nNewWidth;

/* 新しい幅*/

L_INT nWidthUpScalingFactor;

/* スケーリングの上の幅のための多くのステージ*/

L_INT nNewHeight;

/* 新しい高さ*/

L_INT nHeightUpScalingFactor;

/* スケーリングの上の高さのための多くのステージ*/

L_INT nUpScalingOrder;

/* アップスケーリング動作*/

L_UINT32 uFlags;

/* 将来のために予約されています*/

自動的に重要な機能を保っている間、imageのサイズを増やします。また、それは、imageの自然な見た目に影響を及ぼすことなく、選択されたオブジェクトを保ちます。

この機能は、バージョン16以上で利用できます。

パラメーター

説明

pBitmap

エフェクトを適用するビットマップを参照文に引用するビットマップハンドルへのポインター。

pMaskBitmap

マスクビットマップを参照文に引用するビットマップハンドルへのポインター。マスクビットマップは、アップスケールしている操作の間、保たれる必要がある特定の領域の上のカラーマスクのある以外オリジナルのビットマップと同じです。マスクビットマップがないならば、NULLを渡します。ビットマップに関数がERROR_INV_PARAMETERを返すのを妨げるpBitmapと同じサイズを渡します。

crRemoveObjectColor

削除されるマスクビットマップで領域のカラーを指定するCOLORREF値。imageの色とは様々なカラーを使うことは、最善です。任意の色値を渡したくないならば、INTELLIGENTRESCALE_NOREMOVECOLORを渡します。

crPreserveObjectColor

保たれるマスクビットマップで領域のカラーを指定するCOLORREF値。crRemoveObjectColorで指定されるカラーまたはpBitmapでimageで使われるオリジナルのカラーより様々なカラーを使うことは、最善です。任意の色値を渡したくないならば、INTELLIGENTRESCALE_NOREMOVECOLORを渡します。

nNewWidth

ピクセル単位で新しい幅。値が(imageの2*幅)-1まで範囲である(image +1の幅)候補者。

nWidthUpScalingFactor

新しい幅が達成されるまで、ステージにプロセスを拡大縮小して、幅を分割します。これは、場合によってはより良好結果を与えます。設定可能な値は、以下の通りです。

 

 

マスクビットマップが使われるならば:

 

INTELLIGENTRESCALE_NOUPSCALINGFACTOR

 

そうでない場合:

 

1


INTELLIGENTRESCALE_DEFAULTUPSCALINGFACTOR


20

nNewHeight

ピクセルの新しい高さ。値が(imageの2*高さ)-1まで範囲である(image +1の高さ)候補者。

nHeightUpScalingFactor

新しい高さが達成されるまで、ステージにプロセスを拡大縮小して、高さを分割します。これは、場合によってはより良好結果を与えます。設定可能な値は、以下の通りです。

 

 

マスクビットマップが使われるならば:

 

INTELLIGENTRESCALE_NOUPSCALINGFACTOR

 

そうでない場合:

 

1


INTELLIGENTRESCALE_DEFAULTUPSCALINGFACTOR


20

nUpScalingOrder

動作をアップスケールすること。設定可能な値は、以下の通りです。

 

意味

INTELLIGENTRESCALE_VERTHORZ

最初のimage幅、そして高さをアップスケールします。

INTELLIGENTRESCALE_HORZVERT

最初のimage高さ、そして幅をアップスケールします。

uFlags

将来のために予約。ゼロでなければなりません。

戻り値

SUCCESS

関数は成功しました。

<1

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

コメント

知的なアップスケーリングは、imageで重要でないと考えられる領域を規模を改めます。

マスクを用いてアップスケールすることは、幅寸法の上でだけされます。高さ寸法の上でマスクを用いてアップスケールするために、imageを回転させます、幅寸法の上でアップスケールします、そして、もう一度回転します。

マスクが使われるとき、アップスケーリング手順がありません。アップスケールの間、変装した「距離領域」は、領域が重要でないことを示します。したがって、アップスケールエフェクトは、この領域に集中します。

距離領域のカラーは、pBitmapの色とは様々でなければなりません。

領域領域のカラーは、pBitmapの色とは様々でなければならなくて、距離領域カラーとは異ならなければなりません。

複数の距離オブジェクトが存在するならば、全ては同じ距離カラーを使わなければなりません。同じものは、領域カラー領域に適用します。

上からimageの下まで距離領域にかかっているマスクを描画することは通常最も効果的です。そして、距離領域を通して渡します。もっと距離領域だけに集中するために上に向かうスケーリングを強制するのに十分広いマスクを作ります。

この関数は、12と16ビットグレースケールと48と64ビットカラーイメージをサポートしません。imageが12と16ビットグレースケールと48と64ビットカラーであるならば、関数はエラーを返しません。

この関数は、符合付きデータイメージをサポートしません。符合付きデータイメージがこの関数に渡されるならば、それはエラーコードERROR_SIGNED_DATA_NOT_SUPPORTEDを返します。

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

必須のDLLとライブラリ

LTIMGSFX

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

プラットホーム

Win32 x 64

参照

関数:

L_SizeBitmap, L_SizeBitmapInterpolate, L_IntelligentUpScaleBitmap

トピック:

ラスター画像は機能します:インテリジェントなリスケール

 

概要:インテリジェントなリスケール

 

インテリジェントリスケールデモの使用

サンプル

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


L_LTIMGTEX_API L_INT IntelligentUpScaleExample(L_VOID)
{
   L_INT nRet;
   BITMAPHANDLE LeadBitmap;   // Bitmap handle to hold the loaded image.

   nRet=L_LoadBitmap(MAKE_IMAGE_PATH(TEXT("SAMPLE3.CMP")), &LeadBitmap,sizeof(BITMAPHANDLE), 0, ORDER_RGB, NULL, NULL);
   if(nRet !=SUCCESS)
      return nRet;


   nRet= L_IntelligentUpScaleBitmap(&LeadBitmap, NULL, (COLORREF)INTELLIGENTRESCALE_NOREMOVECOLOR, (COLORREF)INTELLIGENTRESCALE_NOPRESERVECOLOR,
      900, 4, LeadBitmap.Height, 4, INTELLIGENTRESCALE_VERTHORZ, 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;

   L_FreeBitmap(&LeadBitmap);

   return SUCCESS;
}