Мне нужно сжать файл jpeg, а скорость сжатия должна быть динамической, заданной дорожкой. Я использую C#, Windows Forms. Я думаю, что переменная jpgcompression просто должна быть типа «Encoder» или что-то в этом роде, но я не уверен, как это сделать. Продолжайте получать сообщение об ошибке «Para meter is not valid» при использовании строки типа или целого числа. Мой код ниже:C# jpeg compression with trackbar
public void resizeImage(Image newImg, int width, int height, string filePath, int jpgCompression)
{
Image newImage = new Bitmap(newImg, width, height);
ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
var jpgcompression = jpgCompression.ToString() + "L";
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, jpgcompression);
myEncoderParameters.Param[0] = myEncoderParameter;
newImage.Save(filePath, jgpEncoder, myEncoderParameters);
}
private ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
C# - чувствительный к регистру язык, 'jpgcompression' не использует аргумент метода jpgCompression'. –