EMGU имеет только image.Save (имя файла), поэтому вы должны использовать .Net метод сохранения изображения.Этот код получен из здесь .Я разделил код для простоты, этот код открывает файл и пытается сохранить его.Это интересующая вас функция saveJpeg (SaveFile.FileName, img.ToBitmap (), 100); .Основываясь на функции saveJpeg (путь строки, растровое изображение, длинное качество).
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);
}
}
Теперь, чтобы получить код для этой функции, вы можете скопировать и вставить его в свой проект, не забывая:оператор using в верхней части вашего кода.
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;
}
Это лучший метод для EMGU, если вы застряли, дайте мне знать.
Надеюсь, это поможет,
Chris