Tôi có một ứng dụng ASP.NET MVC 2 nhắm mục tiêu .NET 4 cần có khả năng thay đổi kích thước hình ảnh khi đang di chuyển và ghi chúng vào phản hồi.Có thể sử dụng các hội đồng WPF trong một ứng dụng web không?
Tôi có mã thực hiện điều này và hoạt động. Tôi đang sử dụng System.Drawing.dll.
Tuy nhiên, tôi muốn nâng cao mã của mình để không chỉ tôi thay đổi kích thước hình ảnh, nhưng tôi thả nó từ 24bpp xuống còn 4bit grayscale. Tôi không thể, cho cuộc sống của tôi, tìm mã trên làm thế nào để làm điều này với System.Drawing.dll.
Nhưng tôi đã tìm thấy một loạt các công cụ WPF. Đây là mã mẫu làm việc/mẫu của tôi (chạy trong 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);
}
Sử dụng System.Xaml.dll, WindowsBase.dll, PresentationCore.dll và PresentationFramework.dll. Các không gian tên được sử dụng là: System.Windows.Controls, System.Windows.Media và System.Windows.Media.Imaging.
Có vấn đề gì khi sử dụng các không gian tên này trong ứng dụng web của tôi không? Nó có vẻ không đúng.
Nếu có ai biết làm thế nào để giảm độ sâu bit mà không có tất cả các công cụ WPF này (mà tôi hầu như không hiểu, BTW) tôi sẽ vui mừng khi thấy điều đó.
Tôi sẽ thử điều này ngay bây giờ và xem nó như thế nào. – Chris
Nó hoạt động. Nó không phàn nàn về chủ đề hay gì cả. Tôi sẽ đánh dấu câu trả lời của bạn là câu trả lời, vì bạn đã cung cấp thông tin bổ sung này. – Chris