Pergunta

Boa tarde,

Estou tendo um pequeno problema com o .net interna (System.Drawing) com base MetaFile / Imagem manipulação de arquivos .wmf que as áreas transparentes containt. Basicamente sempre que eu faço uma MetaFile.LoadFile (...) e levar isso para salvá-lo como um tiff / png etc, algumas áreas do que os arquivos de origem estão em falta. Eu realmente não posso fixá-lo para baixo, mas -seems- como as informações com base vector dentro do metarquivo apenas um belo trabalho, mas as áreas com base em pixel (por exemplo, uma imagem colocada dentro do .wmf) estão faltando.

Alguém sabe um .net 3-parte nativa e não forma confiável, para converter WMF arquivos corretamente (como na .. os pixels com base olhares finais de imagem como o .wmf .. apenas .. bem .. pixelated)

Cheers e graças, -J

Foi útil?

Solução 2

Ok, bem, aparentemente mais confiável maneira de transformar metafiles (WMF / .emf) em outro formato é usar .png como formato de saída, como em algum lugar na descrição MSDN metafiles são internamente tratadas / transformada em png de qualquer maneira ( com alfa etc) e, por exemplo um Metafile.Save ( "somewher" ...) por padrão saída seria em png ImageFormat.

Assim, no caso de você deseja criar uma imagem não-png fora de uma entrada Metafile, você obter o melhor resultado, se você vai a milha extra, transformar e armazená-lo como um png, e levar isso png e re-transformar -lo ao seu formato final. Meio coxo, mas, novamente .. WMF em si é de qualquer maneira estranha e eu vim para o (meu pessoal) conclusão, do mal. ;)

-J

Outras dicas

O problema é que .NET é GDI +, enquanto WMF / EMF é GDI. É importante saber que GDI + não é compatível com GDI, eles têm completamente diferentes APIs e capacidades. Portanto, algumas operações em metarquivos GDI não se comportar conforme o esperado. bitmaps transparentes, mas também transformações mundiais em metarquivos etc. fazer muitas vezes não é realmente trabalho como publicidade pela Microsoft.

O melhor que eu ter chegado tão longe é converter o metarquivo para nativa GDI +, que requer emulando a pilha GDI e aplicando algumas grandes ajustes para obter texto posicionando etc. direita.

Tenha um olhar em EMFExplorer, as informações encontradas não poderia ajudar muito. http://www.codeproject.com/KB/GDI-plus/emfexplorer. aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top