Manipolazione delle immagini in asp.net/c# senza System.Drawing/GDI+
-
08-06-2019 - |
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:
- In passato ho riscontrato difficoltà nel debug degli errori GDI+ con System.Drawing
- 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 :)
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).