C 改变图片尺寸大小和质量
using System;
using System.IO;
using System.Collections;
using System.Drawing;//not in this using System.Drawing.Drawing2D;
using System.Drawing.Imaging;//in this ImageFormat.Jpeg public static void resize_pic(string szdir,int width,int height)
{ int i = 0;
Image img=null;
Image bmcpy=null;
Graphics gh=null;
string szsavedir = Directory.CreateDirectory(szdir + "\\formatedpic1").FullName.ToString();
string[] szfiles = Directory.GetFiles(szdir, "*.jpg");
foreach (string szfile in szfiles)
{
img = Image.FromFile(szfile);
bmcpy = new Bitmap(width, height);
gh = Graphics.FromImage(bmcpy);
gh.DrawImage(img, new Rectangle(0, 0, width,
height));
bmcpy.Save(szsavedir +"\\"+ i.ToString() + ".jpg",ImageFormat.Jpeg);
i++;
}
gh.Dispose();
bmcpy.Dispose();
img.Dispose();
Console.WriteLine("{0} pictures have been resized",i);
}
static void rebdqulity_pic(string szdir,long lqulity)
{int i=0;
Bitmap myBitmap;
ImageCodecInfo myImageCodecInfo;
Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
// Get an ImageCodecInfo object that represents
the JPEG codec.
myImageCodecInfo = GetEncoderInfo("image/jpeg");
myEncoder = Encoder.Quality;
myEncoderParameters = new EncoderParameters(1);
myEncoderParameter = new
EncoderParameter(myEncoder, lqulity);
myEncoderParameters.Param[0] = myEncoderParameter;
string szsavedir =
Directory.CreateDirectory(szdir +
"\\formatedpic1").FullName.ToString();
string[] szfiles = Directory.GetFiles(szdir, "*.jpg");
foreach (string szfile in szfiles)
{
myBitmap = new Bitmap(szfile);
myBitmap.Save(szsavedir+@"\quli"+i.ToString()+".jpg", myImageCodecInfo, myEncoderParameters);
i++;
}
}
private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
public static void resize_pic(int width,int height)
{ int i = 0;
Image img=null;
Image bmcpy=null;
Graphics gh=null;
Directory.CreateDirectory( "formatedpic1");
string szcdir = Environment.CurrentDirectory;
string[] szfiles = Directory.GetFiles(szcdir);
foreach (string szfile in szfiles)
{
string sz_ex = Path.GetExtension(szfile);
if (sz_ex == ".jpg"|| sz_ex == ".bmp"||sz_ex == ".png"||sz_ex == ".gif")
{
img = Image.FromFile(szfile);
bmcpy = new Bitmap(width, height);
gh = Graphics.FromImage(bmcpy);
gh.DrawImage(img, new Rectangle(0, 0, width, height));
bmcpy.Save("formatedpic1\\" + i.ToString() + ".jpg", ImageFormat.Jpeg);
i++;
}
}
Console.WriteLine("{0} pictures have been resized",
i);
}