EMGU chỉ có image.Save (tên tệp) do đó bạn phải sử dụng phương pháp .Net để lưu hình ảnh. Mã này có nguồn gốc từ here. Tôi tách mã để dễ dàng mã này sẽ mở một tập tin sau đó cố gắng để lưu nó. Đây là hàm bạn quan tâm trong saveJpeg (SaveFile.FileName, img.ToBitmap(), 100);. Dựa trên hàm saveJpeg (đường dẫn chuỗi, bitmap img, chất lượng dài).
open.Filter = "Image Files (*.tif; *.dcm; *.jpg; *.jpeg; *.bmp)|*.tif; *.dcm; *.jpg; *.jpeg; *.bmp";
if (open.ShowDialog() == DialogResult.OK)
{
Image<Bgr, Byte> img = new Image<Bgr, Byte>(open.FileName);
SaveFileDialog SaveFile = new SaveFileDialog();
if (SaveFile.ShowDialog() == DialogResult.OK)
{
saveJpeg(SaveFile.FileName, img.ToBitmap(), 100);
}
}
Bây giờ để lấy mã cho hàm đó, bạn có thể sao chép và dán mã này vào dự án của mình, đừng quên câu lệnh đang sử dụng ở đầu mã của bạn.
using System.Drawing.Imaging;
private void saveJpeg(string path, Bitmap img, long quality)
{
// Encoder parameter for image quality
EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
// Jpeg image codec
ImageCodecInfo jpegCodec = this.getEncoderInfo("image/jpeg");
if (jpegCodec == null)
return;
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;
img.Save(path, jpegCodec, encoderParams);
}
private ImageCodecInfo getEncoderInfo(string mimeType)
{
// Get image codecs for all image formats
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
// Find the correct image codec
for (int i = 0; i < codecs.Length; i++)
if (codecs[i].MimeType == mimeType)
return codecs[i];
return null;
}
Đây là phương pháp tốt nhất cho EMGU nếu bạn gặp khó khăn cho tôi biết.
Hope this helps,
Chris
Hi, thay mặt EMGU Tôi xin lỗi vì trang web đang bị dẫn trước nhưng tôi luôn trolling đây và CodeProject cho bất kỳ câu hỏi mà tôi có thể giúp với. Chúc mừng – Chris
@Chris Cảm ơn rất nhiều. Bây giờ tôi biết tôi có thể hỏi ai. Đề xuất công việc ổn định của trang web! – sergtk