C#でWEB上の画像をダウンロードし20kbまで圧縮させたいです。
簡単な計算ができません。
画像が複数枚あります。それぞれ1MBを超えるランダムのサイズです。
それを全てダウンロードまではできたんですが、指定したファイルサイズに圧縮できません。よろしく居お願いします。
計算部分はこれです。fi.Lengthは元のファイルサイズです。
long imgsize = (20L/fi.Length);
また、できればへんてこなソースコードを改良していただきたいです。
ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
WebClient wc = new WebClient();
try
{
for (int i = 0; i < lines.Length; i++)
{
wc.DownloadFile(lines[i], dirName + "\\" + (i + 1) + ".jpg");
Bitmap bmp1 = new Bitmap(@"C:\download\"+now+"\\"+(i+1)+".jpg");
System.IO.FileInfo fi=new System.IO.FileInfo(@"C:\download\" + now + "\\" + (i + 1) + ".jpg");
long imgsize = (20L/fi.Length);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, imgsize);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp1.Save(@"C:\download\"+now+"\\resized\\"+(i+1)+"s.jpg", jgpEncoder, myEncoderParameters);
}
balloon = lines.Length + "枚の画像を保存しました";
}
catch (WebException exc)
{
Console.WriteLine(exc.Message + "\r\n");
balloon = "エラーが発生しました";
}