THotPDF.DecodeLoadedImageRegionAtResolution Method
解码一个源坐标矩形,同时允许解码器选择仍能满足所请求输出尺寸的较低分辨率级别
声明
function DecodeLoadedImageRegionAtResolution(
AImageStream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
TargetPixelWidth, TargetPixelHeight: Integer): TBitmap;
单元
HPDFDoc
参数
| 名称 | 用途 |
|---|---|
AImageStream | 要解码的已加载图像 XObject 流 |
RegionLeft | 包含左侧源坐标 |
RegionTop | 包含顶部源坐标 |
RegionRight | 不包含右侧源坐标 |
RegionBottom | 不包含底部源坐标 |
TargetPixelWidth | Minimum useful decoded width before final rendering scale |
TargetPixelHeight | Minimum useful decoded height before final rendering scale |
返回值
返回一个新分配的位图,内容为钳制后的非空区域;图像或所请求的几何无法解码时返回 nil
Resolution selection
- JPEG 2000 会选择最大的 2 的幂缩减比例,前提是解码后的宽度和高度都仍不小于所请求的像素尺寸
- 该选择绝不会让任一维度欠分辨率,因此避免了绘制前不必要的放大
- 原生的区域选择与分辨率选择会在小波重建和像素展开之前合并
- 崩溃隔离的 JPEG 2000 worker 会收到相同的缩减请求,并使用相应更小的输出预算
- 当原生回退处理与多个码流 tile 相交的区域时,各独立 tile 会在取消、worker 数量、输出和峰值内存的限制内并发解码
- 并行结果按稳定的行主序合成;工作预算不足时,会透明地改用顺序的区域路径
- 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;