PerfectVector
Por Irene Kim

Bounding box EPS: corrija arte cortada e espaço extra

Diagnostique cortes e margens excessivas em EPS comparando os limites declarados com as marcas pintadas. Reexporte e verifique o resultado real no destino.

9 min de leitura
Nesta página

Se um EPS perde parte do logo ou chega com espaço excessivo, compare sua bounding box declarada com a arte que ele realmente pinta. Um fluxo que usa uma caixa pequena demais pode cortar marcas existentes; uma caixa grande demais deixa margens indesejadas. Reexportar a partir do original editável costuma ser a correção mais clara. Ampliar uma declaração não restaura arte que nunca foi salva ou continua excluída por um caminho de recorte.

Comece pelo EPS original, uma referência visual completa e os requisitos do aplicativo de destino. Preserve o original e teste uma substituição com outro nome para comparar a entrega real.

Leia corretamente as quatro coordenadas

Uma bounding box EPS descreve o retângulo que envolve as marcas pintadas. Neste cabeçalho:

%%BoundingBox: 20 15 101 66

20 15 é o canto inferior esquerdo e 101 66 é o superior direito. A largura é 101 − 20 = 81 pontos e a altura é 66 − 15 = 51 pontos. Os últimos números são coordenadas, não largura e altura. Um canto inferior esquerdo diferente de zero é válido.

A especificação EPSF 3.0 da Adobe define a caixa ao redor das marcas pintadas, incluindo extensão dos traços e junções. Só a linha central de um caminho pode, portanto, subestimar os limites necessários. A especificação DSC 3.0 da Adobe exige argumentos inteiros para %%BoundingBox.

Arte conceitual de folha com uma moldura dourada estreita que exclui sua ponta e uma moldura verde-azulada maior que contém espaço extra
Ilustração conceitual: a arte e sua moldura declarada são separadas.

Relacione o sintoma à próxima verificação

SintomaCausa possívelVerificação útil
Uma borda retangular nítida corta a marcaO recorte declarado ou quadro de destino é pequeno demaisCompare a declaração, a extensão pintada salva e as configurações de recorte no destino
A marca completa fica em margens grandesLimites declarados excessivos ou conteúdo pintado extraInspecione a origem completa e o retângulo real de posicionamento
Um traço perde parte da borda, embora o restante esteja corretoOs limites podem omitir a extensão pintada do traçoRecalcule a partir da aparência completa no aplicativo de origem
A miniatura difere do resultado posicionadoPrévia e arte renderizada podem ser representações distintasCompare uma renderização nova e o resultado real no destino
Uma declaração maior ainda deixa arte ausenteDados de pintura ausentes ou caminho de recorte aplicadoVolte ao original editável completo e inspecione o desenho

Uma margem branca também precisa de verificação própria do fundo. Ela pode ser espaço vazio, um objeto branco real ou conteúdo rasterizado. O diagnóstico de fundo EPS cobre a diferença; mudar limites não comprova transparência.

A mesma pintura com quatro declarações de limites

Criamos quatro EPS com um programa de pintura idêntico byte a byte: um retângulo verde-azulado, um triângulo escuro com detalhe circular branco e uma barra laranja perto da borda direita. Reabrir os comandos salvos estabeleceu os mesmos limites externos de pintura em todos:

lower-left:  (20.25, 15.5)
upper-right: (100.75, 65.25)

Somente os comentários de limites mudaram. Os quatro cabeçalhos declararam PostScript LanguageLevel 2. O Ghostscript 10.08.0 renderizou os arquivos reais usando png16m, -dEPSCrop e 288 dpi, resultando em quatro pixels por ponto neste estudo.

DeclaraçãoDimensões reais do PNGResultado observado
%%BoundingBox: 20 15 101 66324 × 204Marca completa com pequenas margens de arredondamento inteiro
%%BoundingBox: 20 15 60 66160 × 204Lado direito do triângulo cortado; barra laranja fora da renderização
%%BoundingBox: 0 0 120 80480 × 320Marca completa com espaço branco considerável
Mesma caixa envolvente de coordenadas inteiras mais limites HiRes fracionários322 × 199Marca completa sem margens de arredondamento inteiro neste renderizador

Na última linha, o comentário adicional foi:

%%HiResBoundingBox: 20.25 15.5 100.75 65.25

Aqui, HiResBoundingBox fornece limites fracionários. O recorte observado seguiu esses valores nesta execução do Ghostscript. Não é uma promessa de que todo importador EPS dê a mesma prioridade ao comentário. Não atribuímos essa extensão à especificação DSC 3.0.

As saídas de 324 × 204 e 322 × 199 representam dimensões de recorte diferentes, não arte em escalas diferentes. O retângulo inteiro declarado de 81 × 51 pontos envolve um retângulo pintado de 80,5 × 49,75 pontos. Sua margem de arredondamento é esperada neste arquivo controlado.

As verificações de pixels encontraram a barra laranja nas renderizações completas; sua posição conhecida ficava fora da renderização pequena demais. Uma execução separada do bbox do Ghostscript, sem recorte EPS, informou os mesmos limites pintados nos quatro arquivos, de acordo com o retângulo envolvente serializado. Isso confirma a falha do exemplo: a renderização recortada perdeu visibilidade enquanto os comandos de pintura salvos continuaram presentes.

As declarações pequenas e grandes demais são controles deliberadamente incorretos. O estudo testa um renderizador e geometria simples preenchida, sem implicar resultado de importação em aplicativo, prévia EPS, impressão física ou conversão pelo PerfectVector.

Diagnostique, corrija e verifique uma substituição

1. Separe a declaração do desenho

Compare a referência completa com o conteúdo realmente renderizado do arquivo. Se puder inspecionar o cabeçalho de um EPS de texto simples, leia ambas as declarações de limites quando existirem. Não presuma que basta procurar números de coordenadas para medir marcas de um arquivo arbitrário: PostScript real pode usar transformações, procedimentos, texto, imagens e recortes.

Para uma verificação técnica com Ghostscript instalado, nosso padrão de comando testado é:

gs -dSAFER -dBATCH -dNOPAUSE \
  -sDEVICE=png16m -r288 -dEPSCrop \
  -sOutputFile=eps-check.png artwork.eps

Ele grava um PNG de inspeção; não repara nem substitui o EPS. A documentação de uso do Ghostscript descreve -dEPSCrop como recorte do EPS em sua bounding box.

Se precisar medir separadamente a extensão das marcas, diferencie essa medida da renderização recortada. A documentação do dispositivo bbox explica que seu resultado depende da resolução raster e do arredondamento e exclui objetos brancos por padrão. Uma extensão não branca medida não é automaticamente uma caixa completa de produção, especialmente em arte branca intencional.

2. Corrija a causa no original editável

Se os limites excluem arte existente, reexporte toda a arte pretendida com uma caixa envolvente. Inclua a extensão visível dos traços. Se as margens são excessivas, veja se objetos soltos ou intencionalmente pintados ampliam o conteúdo real antes de mudar a região de exportação.

Use os controles documentados de gravação EPS do aplicativo e confirme a prancheta ou faixa pretendida. O guia de gravação do Illustrator da Adobe documenta EPS, seleção de pranchetas e uma opção separada de imagem de prévia. São controles documentados; nosso estudo não fez exportação no Illustrator nem estabeleceu seu comportamento de importação.

Se o conteúdo ausente não está no desenho salvo ou é excluído por recorte, corrija esse problema na origem e exporte novamente. Mudar um comentário não fornece comandos de caminho ausentes nem altera a operação de recorte. Sem o original, peça uma origem completa ou exportação corrigida, em vez de aceitar uma moldura vazia ampliada.

3. Confira o arquivo exato que o destinatário usará

Renderize a substituição e compare silhueta completa, pontas finas dos traços, detalhes brancos internos e margens intencionais com a referência. Confirme dimensões pelas diferenças entre coordenadas. Depois posicione ou importe a mesma substituição no fluxo real de destino e confira recorte e escala.

Se a renderização está completa, mas o posicionamento ainda corta a arte, investigue o quadro, as configurações de importação e o tratamento do arquivo no destino. Se ambos continuam incompletos, volte ao conteúdo e ao recorte de origem. Mantenha a substituição separada até conteúdo e resultado no destino atenderem ao requisito.

Uma verificação de limites bem-sucedida não informa se há caminhos editáveis ou bitmap incorporado. Use o guia de inspeção estrutural de EPS para essa tarefa. Uma bounding box SVG pertence a outro sistema; medidas DOM não substituem a interpretação de comentários e pintura EPS.

Como isso funciona com o PerfectVector

Se só resta um logo raster plano completo e um fundo EPS opaco atende ao trabalho, reconstrua as formas visíveis com o fluxo de imagem para EPS do PerfectVector. Compare silhueta, letras e aberturas reconstruídas com a referência e inspecione o EPS exportado completo e suas dimensões no destino.

A saída atual usa caminhos planos preenchidos com fundo opaco branco ou preto. Isso prepara uma nova arte candidata; não repara um cabeçalho EPS arbitrário, restaura arte ausente invisível nem certifica o recorte do destinatário. Se já existe um original vetorial editável, corrija-o e reexporte.

FAQ

Uma bounding box EPS precisa começar em zero?

Não. O canto inferior esquerdo pode ter coordenada diferente de zero. Largura e altura são a diferença entre coordenadas superiores e inferiores. Nossa caixa de coordenadas inteiras começa em (20, 15) e descreve 81 × 51 pontos sem mover os comandos de pintura.

Uma BoundingBox maior pode recuperar arte cortada?

Ela pode alterar a região visível se a pintura ainda existe e o fluxo de destino usa a declaração. Não recria comandos ausentes nem desfaz um caminho de recorte. Corrija e reexporte a partir do original completo e verifique no destino real.

HiResBoundingBox sempre elimina margens extras?

Nenhum comportamento universal foi estabelecido aqui. O Ghostscript 10.08.0 seguiu os limites fracionários no teste, gerando 322 × 199 pixels em vez dos 324 × 204 da caixa envolvente de coordenadas inteiras. Confirme o comportamento do importador real e preserve uma declaração válida de limites inteiros que envolvam toda a arte.

Fontes

  1. Adobe — Especificação EPSF 3.0 — Define limites inferior esquerdo e superior direito ao redor de marcas pintadas, incluindo traços e junções.
  2. Adobe — Especificação DSC 3.0 — Define os argumentos de coordenadas inteiras do comentário BoundingBox.
  3. Ghostscript — Parâmetros EPS — Documenta EPSCrop e controles relacionados de processamento.
  4. Ghostscript — Saída de bounding box — Documenta medição bbox, tratamento de objetos brancos e limites de resolução e arredondamento.
  5. Adobe — Salvar arte — Documenta exportação EPS, seleção de prancheta e opção distinta de imagem de prévia.

Começando com um logo raster completo e aceitando fundo opaco? Crie um EPS candidato a partir da imagem, compare os caminhos com a referência e verifique arte exportada completa, dimensões e recorte no fluxo do destinatário.

Mais do blog

PerfectVector

Transforme seu arquivo de imagem em um
SVG editável

Sem cartão de crédito