Ho un'app per ASP.NET MVC 2 che utilizza .NET 4 che deve essere in grado di ridimensionare le immagini al volo e scriverle nella risposta.È corretto utilizzare gli assembly WPF in un'app Web?
Ho codice che fa questo e funziona. Sto usando System.Drawing.dll.
Tuttavia, voglio migliorare il mio codice in modo che non solo sono il ridimensionamento dell'immagine, ma sto cadendo da 24bpp fino a 4bit scala di grigi. Non potrei, per la vita di me, trovare il codice su come farlo con System.Drawing.dll.
ma ho trovato un sacco di roba WPF. Questo è il mio codice di lavoro/di esempio (eseguito in LinqPad).
// Load the original 24 bit image
var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.UriSource = new Uri(@"C:\Temp\Resized\18_appa2_015.png", UriKind.Absolute);
//bitmapImage.DecodePixelWidth = 600;
bitmapImage.EndInit();
// Create the destination image
var formatConvertedBitmap = new FormatConvertedBitmap();
formatConvertedBitmap.BeginInit();
formatConvertedBitmap.Source = bitmapImage;
formatConvertedBitmap.DestinationFormat = PixelFormats.Gray4;
formatConvertedBitmap.EndInit();
// Encode and dump the image to disk
var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(formatConvertedBitmap));
using (var fileStream = File.Create(@"C:\Temp\Resized\18_appa2_015_s2.png"))
{
encoder.Save(fileStream);
}
utilizza System.Xaml.dll, WindowsBase.dll, PresentationCore.dll e PresentationFramework.dll. Gli spazi dei nomi utilizzati sono: System.Windows.Controls, System.Windows.Media e System.Windows.Media.Imaging.
C'è qualche problema di utilizzare questi spazi dei nomi nella mia applicazione web? Non sembra giusto.
Se qualcuno sa come far cadere la profondità di bit, senza tutta questa roba WPF (che ho appena capito, BTW) sarei entusiasta di vedere anche questo.
Ho intenzione di provare questo adesso e vedere come va. – Chris
Ha funzionato. Non si lamentava di discussioni o altro. Contrassegnerò la tua risposta come risposta, dal momento che hai fornito queste informazioni aggiuntive. – Chris