Logosulfite.app
rafagazani/sulfite 999999

Image

Elemento de imagem (base64 ou URL)

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:

  1. binding → URL ou base64 resolvido do registro
  2. base64Source → base64 estático no JSON
  3. imageUrl → URL estática no JSON
  4. Placeholder cinza com texto img

Propriedades#

PropriedadeTipoPadrãoDescrição
widthdoubleLargura em pontos
heightdoubleAltura 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).

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.