Image
Renderiza imagens a partir de base64 inline ou URL remota.
JSON (base64)
{
"type": "image",
"id": "logo",
"x": 40,
"y": 10,
"width": 120,
"height": 60,
"base64Source": "iVBORw0KGgoAAAANSUhEUgAA...",
"fit": "contain"
}JSON (URL)
{
"type": "image",
"id": "product_photo",
"x": 40,
"y": 10,
"width": 100,
"height": 100,
"imageUrl": "https://example.com/photo.png",
"borderRadius": 8
}JSON (binding — URL dinâmica)
Quando a URL da imagem vem do próprio registro de dados, combine binding com o processamento de dados. O DataProcessor resolve o caminho e armazena a URL no campo id do elemento dentro do row context:
{
"type": "image",
"id": "img_foto",
"x": 40,
"y": 10,
"width": 120,
"height": 120,
"binding": "sprites.other.official-artwork.front_default",
"borderRadius": 60,
"fit": "cover"
}O campo binding suporta dot-path com acesso a objetos aninhados e arrays (items[0].photo). O DataProcessor resolve o valor e o PdfRenderer/HtmlRenderer usa a URL resolvida para exibir a imagem.
JSON (binding — base64 dinâmico)
{
"type": "image",
"id": "dynamic_img",
"x": 40,
"y": 10,
"width": 80,
"height": 80,
"binding": "product_image_base64"
}O binding pode apontar tanto para uma URL HTTP(S) quanto para uma string base64 — o engine detecta o formato automaticamente.
Prioridade de resolução
O engine resolve a imagem na seguinte ordem:
binding→ URL ou base64 resolvido do registrobase64Source→ base64 estático no JSONimageUrl→ URL estática no JSON- Placeholder cinza com texto
img
Propriedades
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
width | double | — | Largura em pontos |
height | double | — | Altura em pontos |
base64Source | string | "" | Imagem codificada em base64 (estática) |
imageUrl | string | "" | URL estática para download da imagem |
binding | string | "" | Dot-path para URL ou base64 no registro |
fit | string | "contain" | "contain", "cover", "fill" |
opacity | double | 1.0 | Opacidade (0.0 a 1.0) |
borderRadius | double | 0.0 | Raio das bordas arredondadas |
hasBorder | bool | false | Exibir borda |
borderColor | string | "000000" | Cor da borda (hex) |
borderWidth | double | 1.0 | Espessura da borda |
Cache
O engine mantém um cache LRU para imagens decodificadas (ImageLruCache). Imagens por URL são baixadas e cacheadas automaticamente (ImageUrlLoader).
Imagens em Detail Band
Ao usar binding dentro de uma DetailBand, cada registro pode ter sua própria imagem. O engine pré-carrega todas as URLs antes de renderizar o PDF para evitar delays na geração.