Pergunta

Há alguma alternativa de manipulação de imagem da biblioteca para .net?Eu prefiro algo que é gerenciado e de código aberto.

Pergunto isso por causa de duas razões:

  1. Eu encontrei difícil depurar GDI+ erros com o Sistema.Desenho no passado
  2. Eu li que a utilização do Sistema.Desenho em asp.net aplicações web não é 100% apoiado.

Obrigado!

editar:esclarecimento, eu sei que do Sistema.O desenho pode trabalhar asp.net web apps - eu tenho usado ele no passado.Eu realmente só quero saber se há uma política de manipulação de imagem bibliotecas .net :)

Foi útil?

Solução

Eu não sei de nenhum totalmente gerenciado de desenho 2D, bibliotecas que são livres ou open-source (parece que alguns disponíveis comercialmente, mas o OSS é a forma de o fazer).No entanto, você pode olhar para o Mono ligações para o Cairo.

Cairo é uma independentes de plataforma 2D API de desenho.Você pode encontrar mais informações sobre ele no o Cairo página inicial.O Cairo página da Wikipédia também tem algumas boas informações.

Cairo é também bastante utilizado amplamente no mundo Open Source, o que me diz algo sobre a sua robustez.A Mozilla, o Webkit, e Mono todos a utilizam, entre outros.Ironicamente, Mono, na verdade, usa-lo para fazer seu Sistema.Desenho, implementação...vai entender.

Também pode ser uma forma de usar o Mono do Sistema.Desenho de implementação como um drop-in de substituição para a implementação da Microsoft, embora eu não tenho certeza de como ou do que o mesmo trabalho.Eu provavelmente iria começar por substituir a System.Drawing.dll referência com o Mono da versão e, em seguida, tentar lidar com os erros.

Outras dicas

Você deve olhar para o WPF Imagem bibliotecas fornecidas com .NET 3.0.Eles são otimizados e robusto (usado para executar o Aero, então você sabe que eles estão eficiente).Eles não dependem do WPF dispatcher, são facilmente extensível, e oficialmente suportado.O que mais você poderia querer?

Evidência anedótica #1:Eu usei o GDI+ para o on-the-fly de criação de imagem dentro ASP.NET sem problemas.Eu não tenho certeza de que os problemas seriam ainda.

Com relação a (1), a maioria dos rígido para depurar erros são devido ao não fechamento de identificadores abertos (Dispose() no managed-terra).Estou curioso para saber onde você ouviu (2).

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