2015-01-13 20 views
5

Il namespace System.drawing non è disponibile nel coreCLR. Voglio ridimensionare l'immagine nel server e tornare a memorizzarla.Spazio dei nomi System.Drawing mancante nel core aspnetVnext CLR

Per dare più contesto la mia applicazione utilizza il markdown per l'edizione del contenuto. una volta che l'immagine è stata caricata, voglio ridimensionarla e applicarla in HTML. Sto facendo un assemblaggio per lavorare con coreclr non sul desktop.

+0

E '* mai * stata [ufficialmente supportato] (http://msdn.microsoft.com/en-us/library/system.drawing%28v=vs.110%29.aspx) per l'utilizzo in ASP .netto. Tuttavia, non credo che l'alternativa raccomandata (Windows Imaging Components) sia disponibile in Core CLR. –

+0

È possibile aggiungere il riferimento a core e utilizzarlo. Puoi trovarlo in: 'C: \ Programmi (x86) \ Reference Assemblies \ Microsoft \ Framework' –

+0

Sto facendo grandi progressi su una libreria di imaging .NET Core che potrebbe essere appropriata https://github.com/JimBobSquarePants/ImageProcessor –

risposta

11

La risposta breve (e unica risposta, per ora) è sì, sei completamente corretto. System.Drawing non è e non sarà mai una buona opzione per Core, soprattutto perché è multipiattaforma. Stiamo esaminando altre soluzioni come un wrapper libgd gestito come discusso qui https://github.com/imazen/Graphics-vNext

+0

Sembra davvero interessante in modo provocatorio qualcosa di simile a questo. Sembra che Imazen abbia deciso di non effettuare autonomamente la porta libgd.net per l'aggiornamento che hanno pubblicato oggi. –

+0

Come va ora? Per quanto ne so, System.Drawing è stato aggiunto alla prossima versione del core .NET Core o ASP.NET, è corretto? – szhuravel

+0

@szhuravel No, solo alcune primitive, punto, rettangolo ecc. Per aiutare con l'interoperabilità. –

1

Alexander Köplinger ha iniziato a eseguire il porting dell'implementazione di Mono di System.Drawing (e WinForms) in .NET Core. Puoi trovare il suo codice allo github.com/akoeplinger/mono-winforms-netcore.

avvertimento Come onesti, comunque, ha fatto dire questo proposito:

implementazione WinForms di Mono non ha ottenuto molto amore negli ultimi anni, quindi non so se ha molto uso al di fuori della sperimentazione/Hobby- roba app.

0

Un modo ottimo e facile da fare la conversione delle immagini e la manipolazione è quello di utilizzare Magick.NET (codice di esempio per l'illustrazione):

using(MagickImage ThisPicture = new MagickImage(JpegPicture)) 
{ 
    ThisPicture.Scale(XDimensions, YDimensions); 
    ThisPicture.ColorType = ColorType.Grayscale; 
    ThisPicture.Extent(XDimensions, YDimensions, Gravity.Center, MagickColors.Black); 

    using(PixelCollection ThisPixels = ThisPicture.GetPixels()) 
    { 
     byte Intensity = ThisPixels[ IX, IY ].GetChannel(0); 
    } 
} 
Problemi correlati