Tôi đã có một ứng dụng web nơi người dùng có thể tải lên hình ảnh. Vấn đề hiện tại tôi đang gặp phải là các hình ảnh đang được tải lên đang được lưu vào cơ sở dữ liệu ở định dạng gốc. Điều này gây ra rất nhiều vấn đề hiệu suất khi hình ảnh được sử dụng trên một trang web. Tôi đã sử dụng dotTrace để cấu hình ứng dụng và tôi thấy các vấn đề quan trọng khi hình ảnh được xử lý từ cơ sở dữ liệu.C# hình ảnh mvc tải lên thay đổi kích thước phía máy chủ
Ý tưởng tôi có là định lại kích thước hình ảnh khi được tải lên máy chủ. Lấy ví dụ sau mà tôi muốn ứng dụng thực hiện khi người dùng tải lên một hình ảnh mới;
- tài tải lên một hình ảnh
- Hình ảnh đã được thay đổi kích cỡ để kích thước của 7.500 x 7.500 pixel ở 72 dpi
- Những hình ảnh đang được lưu vào cơ sở dữ liệu
- gốc tập tin được xử lý
Hình ảnh được lưu trữ duy nhất là hình ảnh được đề cập ở trên và ứng dụng web chứa công nghệ để thay đổi kích thước này khi đang di chuyển.
Tôi đã đọc một số chủ đề ở đây trên SO. Và hầu hết trong số họ chỉ cho tôi theo hướng của ImageMagick. Công cụ này đã quen thuộc với công ty của tôi và đang được sử dụng trong các dự án PHP. Nhưng có bất kỳ trình bao bọc C# được phát hành tốt và ổn định nào cho công cụ này không? Tôi đã tìm thấy các công cụ dưới đây nhưng chúng đang được phát hành Béta, Alpha Release hoặc hiện không được cập nhật.
Tôi cũng thấy this chủ đề trên SO. Trong chủ đề này, ví dụ mã sau được cung cấp;
private static Image CreateReducedImage(Image imgOrig, Size newSize)
{
var newBm = new Bitmap(newSize.Width, newSize.Height);
using (var newGrapics = Graphics.FromImage(newBm))
{
newGrapics.CompositingQuality = CompositingQuality.HighSpeed;
newGrapics.SmoothingMode = SmoothingMode.HighSpeed;
newGrapics.InterpolationMode = InterpolationMode.HighQualityBicubic;
newGrapics.DrawImage(imgOrig, new Rectangle(0, 0, newSize.Width, newSize.Height));
}
return newBm;
}
Tóm lại các câu hỏi tôi có;
- Có lợi thế nào liên quan đến hiệu suất sử dụng ví dụ trên không?
- Có trình bao bọc C# tốt và đáng tin cậy cho ImageMagick tôi có thể sử dụng để thực hiện việc này không?
Bất kỳ mẹo hay nào khác liên quan đến hiệu suất đều được hoan nghênh!
http://imageresizing.net là cách để thực hiện. Nó được kiểm tra, đáng tin cậy và hoạt động với độ tin cậy thấp. Nó xử lý nhiều định dạng dễ dàng và có thể được gọi trong một dòng mã. Thư viện cực kỳ linh hoạt và có khả năng. –