function GetImageObjectRenderedBitmap(Index: Integer): TBitmap;
| Index | Integer. Índice de base zero de um objeto de página de imagem, no intervalo 0 .. ObjectCount - 1. Um objeto de outro tipo gera um EPdfError (Image object required). |
| Result | TBitmap. Um bitmap recém-criado, da propriedade do chamador e por este libertado, ou nil quando a chamada nativa não produz bitmap. |
Renderiza apenas esse objeto de imagem através do renderizador nativo (FPDFImageObj_GetRenderedBitmap), com a matriz, o espaço de cor e as máscaras atuais aplicados — o resultado mostra a imagem tal como a página a mostra, incluindo soft masks, chaves de estêncil e conversões de cor, que as amostras brutas disponíveis através de Image não transportam
O lock de renderização é mantido durante a chamada nativa, pelo que é seguro perante renderizações concorrentes no mesmo componente. O bitmap nativo é convertido e destruído antes do retorno; o TBitmap resultante pertence ao chamador
A chamada exige que a página atual esteja ativa, que o objeto em Index seja do tipo otImage (verifique ObjectType) e uma compilação do PDFium que exporte o ponto de entrada de renderização por imagem; caso contrário é gerado um EPdfError (Rendered image object bitmaps are not available)
Um resultado nil não é uma condição de aborto: quando a chamada nativa não produz bitmap, o chamador pode recorrer ao recorte de uma renderização de página inteira com os limites de ObjectBounds
var
Bmp: TBitmap;
begin
if Pdf1.ObjectType[7] = otImage then
begin
Bmp := Pdf1.GetImageObjectRenderedBitmap(7);
if Bmp <> nil then
try
Image1.Picture.Bitmap.Assign(Bmp);
// use Bmp for export, comparison or recognition
finally
Bmp.Free;
end;
end;
end;