FigmaMind MCP Server

by joao-loker
Verified
# Extração de Assets do Figma Este documento descreve a funcionalidade de extração automática de assets (imagens e ícones) dos componentes do Figma implementada neste sistema. ## Visão Geral A extração de assets permite que imagens, ícones e outros elementos visuais sejam automaticamente extraídos dos componentes do Figma durante o processo de transformação. Esses assets são salvos como arquivos individuais no diretório `examples/output/assets/` e referenciados no JSON de saída. ## Como Funciona 1. Durante o processo de extração dos componentes do Figma, o sistema identifica automaticamente nós que contêm imagens ou ícones. 2. Para cada asset identificado, o sistema: - Extrai o ID único do nó - Solicita a URL de exportação da imagem à API do Figma - Baixa a imagem e a salva localmente - Adiciona a referência ao asset no JSON do componente processado ## Tipos de Assets Suportados O sistema suporta a extração dos seguintes tipos de assets: - Imagens (PNG, JPG, SVG) - Ícones (como componentes de imagem) - Elementos de fundo com imagens - Máscaras e elementos com recorte ## Propriedade "assets" no JSON Nos componentes processados, os assets extraídos são referenciados em uma propriedade dedicada chamada `assets`. Esta propriedade contém um objeto onde as chaves são os IDs dos nós originais e os valores são os caminhos para os arquivos extraídos. Exemplo: ```json { "id": "2139:96740", "name": "Main-Primary", "type": "INSTANCE", "properties": { "size": { "width": 358, "height": 56 }, "position": { "x": -10142, "y": 6710 }, "assets": { "2139:96741": "examples/output/assets/2139-96741.png", "2139:96742": "examples/output/assets/2139-96742.svg" } } } ``` ## Configuração Por padrão, o sistema está configurado para extrair automaticamente todos os assets encontrados nos componentes. Não é necessária nenhuma configuração adicional para habilitar essa funcionalidade. ## Acesso aos Assets pela API Os assets extraídos podem ser acessados através do endpoint `/api/assets/:filename` da API REST, onde `:filename` é o nome do arquivo de asset (por exemplo, `2139-96741.png`). Exemplo de requisição: ``` GET /api/assets/2139-96741.png ``` Esta requisição retornará o arquivo de imagem correspondente. ## Limitações - A qualidade e o formato dos assets extraídos dependem das opções de exportação definidas no Figma - Assets muito grandes podem demorar mais para serem processados - Alguns efeitos complexos aplicados a imagens no Figma podem não ser totalmente preservados ## Resolução de Problemas Se você encontrar problemas com a extração de assets: 1. Verifique se o token de API do Figma tem permissões para acessar o arquivo 2. Certifique-se de que o diretório `examples/output/assets/` existe e tem permissões de escrita 3. Para imagens que não estão sendo extraídas corretamente, verifique se elas são exportáveis no Figma ## Exemplos de Código Exemplo de como o sistema extrai um asset de imagem: ```javascript // Trecho do figmaService.js async function downloadImage(nodeId, figmaFileKey) { const imagesResponse = await figma.getImage(figmaFileKey, { ids: [nodeId], format: 'png', scale: 2 }); if (imagesResponse && imagesResponse.images && imagesResponse.images[nodeId]) { const imageUrl = imagesResponse.images[nodeId]; const imagePath = `examples/output/assets/${nodeId.replace(':', '-')}.png`; await downloadFile(imageUrl, imagePath); return imagePath; } return null; } ```