SVG exportado para EMF perde precisão, mas exportado como PNG parece bem

1

Sou programador de área de trabalho do Windows que precisa converter determinados SVG em EMF para usá-lo na programação.

Minhas habilidades de design gráfico estão no nível iniciante, mas consegui converter arquivos SVG em EMF usando o Inkscape com sucesso. No entanto, o resultado não é como o original, é menos "preciso", por assim dizer. Se eu exportar o SVG como PNG, o resultado será o mesmo que o arquivo original. Infelizmente, eu preciso de um formato vetorial que o Windows reconheça e que seja apenas EMF (estou usando o WinAPI e o C ++, portanto, essa limitação ...).

Para ver exatamente o que quero dizer, vincule ao SVG original, e o EMF e o PNG que eu fiz são aqui . Basta clicar no Download: test.rar acima das 5 estrelas amarelas (veja a figura abaixo).

OproblemapareceserasdimensõesdoarquivoEMF(deveser90x120),jáqueaimagemficaclaraquandoeuredimensionomeuaplicativoparadimensõesmaiores.

EstoupedindosuaajudaparaobteramesmaqualidadegráficadoarquivoEMFqueoSVGoriginal.

Paraajudá-loaindamaisemseusesforçospararesolvermeuproblema,o aqui é um pequeno aplicativo que exibir EMF em uma janela. Apenas mantenha o EMF no mesmo local em que o aplicativo está e nomeie o EMF como test.emf .

Obrigado pelo seu tempo e esforço. Atenciosamente.

    
por AlwaysLearningNewStuff 03.08.2014 / 13:15

2 respostas

2

Vou fazer uma comparação com seu gráfico de teste:

  1. Este é o arquivo PNG que você fornece, então este provavelmente é o resultado desejado:

  2. Asaídadoseucódigo,aprox.nomesmotamanho:

  3. O arquivo EMF que você fornece, exibido no IrfanView (aproximadamente aproximadamente o mesmo tamanho)

  4. Omesmoque3.,mascomView->DisplayOptions->UseResampleativado:

Conclusão

Como 4. parecido com 1. (ou seja, o resultado desejado), minha conclusão é que a conversão para o formato EMF é perfeitamente adequada, mas seu código dimensiona o gráfico com um algoritmo simples, provavelmente baseado em pixel. Então IMHO você precisa implementar, e. uma interpolação bilinear da rotina.

    
por 05.08.2014 / 21:58
2

Quando visualizado com o Photoshop, o EMF não possui um quadro adicionado, portanto, isso parece ser um problema com o visualizador.

Não é possível fazer o download do seu visualizador por algum motivo obscuro, Eu usei o Free WMF Viewer para visualizar sua imagem EMF,

O arquivo EMF parece perfeito - ele aumenta e diminui perfeitamente como deveria uma imagem de gráficos vetoriais. Mas esse visualizador também mostra uma moldura preta ao redor da imagem.

Eu também vi o seu EMF usando um antigo visualizador wmf / emf que eu escrevi uma vez, que também não mostra o quadro preto. Eu observo que no meu próprio espectador eu usei a caixa delimitadora apenas para determinar o aspecto relação da imagem (altura vs. largura), para exibi-lo corretamente, ou seja, não espremido ou esticado.

Minha conclusão é que ambos os espectadores exibem a caixa delimitadora como um quadro. Isso é incorreto, já que seu objetivo é fornecer informações sobre os recomendado retângulo de exibição, em vez de ser exibido. Seu processo de geração da EMF parece estar correto.

    
por 05.08.2014 / 23:01