Domanda

Esiste una libreria alternativa per la manipolazione delle immagini per .net?Preferirei qualcosa che sia gestito e open source.

Lo chiedo per due motivi:

  1. In passato ho riscontrato difficoltà nel debug degli errori GDI+ con System.Drawing
  2. Ho letto che l'utilizzo di System.Drawing nelle applicazioni Web asp.net non è supportato al 100%.

Grazie!

modificare:chiarimenti, so che System.Drawing può funzionare con le app Web asp.net: l'ho usato in passato.Mi chiedo davvero se esistano librerie gestite per la manipolazione delle immagini per .net :)

È stato utile?

Soluzione

Non conosco librerie di disegni 2D completamente gestite che siano gratuite o open source (sembra che ce ne siano alcune disponibili in commercio, ma OSS è la strada da percorrere).Tuttavia potresti esaminare i collegamenti Mono al Cairo.

Cairo è un'API di disegno 2D indipendente dalla piattaforma.Puoi trovare maggiori informazioni a riguardo su la home page del Cairo.IL Pagina Wikipedia del Cairo ha anche delle buone informazioni.

Cairo è utilizzato abbastanza ampiamente anche nel mondo Open Source, il che secondo me dice qualcosa sulla sua robustezza.Mozilla, Webkit e Mono lo usano tutti, tra gli altri.Ironicamente, Mono lo utilizza effettivamente per supportare la propria implementazione System.Drawing...vai a capire.

Potrebbe anche esserci un modo per utilizzare l'implementazione System.Drawing di Mono come sostituto immediato dell'implementazione Microsoft, anche se non sono sicuro di come o se funzionerebbe.Probabilmente inizierei sostituendo il riferimento System.Drawing.dll con la versione di Mono, quindi proverei a gestire eventuali errori.

Altri suggerimenti

Dovresti esaminare le librerie di imaging WPF fornite con .NET 3.0.Sono ottimizzati e robusti (utilizzati per eseguire Aero, quindi sai che sono efficienti).Non dipendono dal dispatcher WPF, sono facilmente estensibili e supportati ufficialmente.Cosa si può volere di più?

Prova aneddotica n. 1:Ho utilizzato GDI+ per la creazione di immagini al volo in ASP.NET senza problemi.Non sono nemmeno sicuro di quali sarebbero i problemi.

Rispetto a (1), la maggior parte degli errori difficili da eseguire il debug sono dovuti alla mancata chiusura degli handle aperti (Dispose() in area gestita).Sono curioso di sapere dove hai sentito (2).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top