# Elemento de imagem

## 1. Estrutura

```ts
interface ImageClip extends BaseClip {
  type: "image";
  src: string | { $ref: string };
}
```

## 2. Campos suportados

### `src`
- Tipo: `string | { $ref: string }`
- Obrigatório: sim
- Finalidade: URL da imagem ou referência para um asset de imagem

## 3. Comportamento atual do runtime

- `src` suporta URLs diretas
- `src` suporta `$ref`
- `transform` funciona
- `style.borderRadius` funciona
- `style.objectFit` funciona
- `style.filters` funciona

## 4. `style.objectFit`

Valores suportados:
- `fill`
- `cover`
- `contain`

Significado:
- `fill`: estica para a caixa de destino e pode distorcer
- `cover`: preserva a proporção e pode cortar
- `contain`: preserva a proporção e pode deixar espaço vazio

Exemplo:

```json
{
  "style": {
    "objectFit": "cover"
  }
}
```

Também pode ser combinado com filtros:

```json
{
  "style": {
    "objectFit": "cover",
    "filters": [
      { "type": "blur", "value": 24 }
    ]
  }
}
```

## 5. Exemplo

```json
{
  "type": "image",
  "start": 0.5,
  "duration": 4,
  "src": { "$ref": "logo" },
  "transform": {
    "x": "85%",
    "y": "10%",
    "width": 220,
    "height": 80
  },
  "style": {
    "borderRadius": 16,
    "objectFit": "contain"
  },
  "animations": [
    {
      "type": "fadeIn",
      "duration": 0.5
    }
  ]
}
```