THotPDF.DecodeLoadedImageRegionAtResolution Method
ソース座標の矩形をデコードします。デコーダーは、要求された出力サイズを満たすより低い解像度レベルを選べます
宣言
function DecodeLoadedImageRegionAtResolution(
AImageStream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
TargetPixelWidth, TargetPixelHeight: Integer): TBitmap;
ユニット
HPDFDoc
パラメータ
| 名前 | 目的 |
|---|---|
AImageStream | デコード対象の読み込み済み画像 XObject ストリーム |
RegionLeft | 左ソース座標(この値を含む) |
RegionTop | 上ソース座標(この値を含む) |
RegionRight | 右ソース座標(この値を含まない) |
RegionBottom | 下ソース座標(この値を含まない) |
TargetPixelWidth | 最終描画スケールの前に必要な、実用最小デコード幅 |
TargetPixelHeight | 最終描画スケールの前に必要な、実用最小デコード高さ |
戻り値
クランプされた空でない領域の、新規割り当てのビットマップを返します。画像または要求されたジオメトリをデコードできない場合は nil を返します
解像度の選択
- JPEG 2000 は、デコード後の幅と高さがともに要求ピクセルサイズ以上を保てる、最大の 2 の冪縮小を選択します
- どちらの寸法も過小解像度にならないため、描画前の不要な拡大を避けられます
- ネイティブのリージョン選択と解像度選択は、ウェーブレット再構成とピクセル展開の前に組み合わされます
- クラッシュ分離された JPEG 2000 ワーカーも同じ縮小要求を受け取り、それに応じて小さい出力バジェットを使います
- ネイティブフォールバックが複数のコードストリームタイルにまたがるリージョンを処理する場合、独立したタイルはキャンセル・ワーカー数・出力・ピークメモリの各上限内で並列にデコードされます
- 並列結果は安定した行優先順で合成され、作業バジェットが足りない場合は透過的に逐次リージョン経路へ切り替わります
- DeviceRGB または DeviceGray の JPEG 画像は、リージョンまたは要求サイズが画像全体と異なる場合に縮小サイズの DCT デコーダーを通ります。要求をカバーできる縮小 DCT スケールでデコードし、要求されたサイズちょうどに再サンプリングしたリージョンを返します
- その他のサポート対象画像形式、および他のカラースペースの JPEG 画像では正確なリージョンデコードが保たれ、最終スケーリングは呼び出し側に委ねられます
- nil 以外の戻り値ビットマップは呼び出し側が所有し、解放する必要があります
例
Preview := PDF.DecodeLoadedImageRegionAtResolution(
ImageStream, 0, 0, SourceWidth, SourceHeight, 320, 200);
try
Canvas.StretchDraw(TargetRect, Preview);
finally
Preview.Free;
end;