Как сжать изображения?
Привет, недавно я добавил код в свою программу для сжатия изображений в папке, которая успешно работает. мой вопрос здесь заключается в том, как я могу сжимать изображения по отдельности без необходимости помещать их в папку с помощью моего кода?
вот моя функция:
public static void CompressImage(string sourcepath, string destpath, int quality) { var FileName = Path.GetFileName(sourcepath); destpath = destpath + "\\" + FileName; using (Bitmap bmpl = new Bitmap(sourcepath)) { ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg); System.Drawing.Imaging.Encoder QualityEncoder = System.Drawing.Imaging.Encoder.Quality; EncoderParameters myEncoderParameters = new EncoderParameters(1); EncoderParameter myEncoderParameter = new EncoderParameter(QualityEncoder, quality); myEncoderParameters.Param[0] = myEncoderParameter; bmpl.Save(destpath, jpgEncoder, myEncoderParameters); } } private static ImageCodecInfo GetEncoder(ImageFormat format) { ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders(); foreach(ImageCodecInfo codec in codecs) { if(codec.FormatID==format.Guid) { return codec; } } return null; } private void button3_Click(object sender, EventArgs e) { string[] files = Directory.GetFiles(textBox1.Text); DialogResult result2 = folderBrowserDialog1.ShowDialog(); if (result2 == DialogResult.OK) { foreach (var file in files) { string ext = Path.GetExtension(file).ToUpper(); if (ext == ".PNG" || ext == ".JPG") { CompressImage(file, folderBrowserDialog1.SelectedPath, (int)comboBox1.SelectedItem); } else { MessageBox.Show("The selected file: " + textBox1.Text + " does not contain no imege.", "Compress Unsuccessfull!", MessageBoxButtons.OK, MessageBoxIcon.Warning); ClassGV.image = 1; break; } } if (ClassGV.image != 1) { MessageBox.Show("Compressed images has been stored to\n" + folderBrowserDialog1.SelectedPath, "Compress Successfull!", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
Что я уже пробовал:
Ну, я перепробовал много способов сделать свой код правильным, но ни один из них не сработал, так как я не могу точно определить, где я должен измениться, чтобы получить желаемые результаты. Я был бы признателен вам за помощь.
Gerry Schmitz
PNG-файлы уже сжаты; сжатие "снова" не поможет. А некоторые "магазины" настаивают на PNG, поэтому я конвертирую все свои JPG в PNG, которые меньше.