C# 图片剪切与缩小的实例_C#教程-查字典教程网
C# 图片剪切与缩小的实例
C# 图片剪切与缩小的实例
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:publicvoidCutToF(Streamstream){ImageinitImage=Image.FromStrea...

复制代码 代码如下:

public void CutToF(Stream stream)

{

Image initImage = Image.FromStream(stream, true);

if (initImage.Width <= 480 && initImage.Height <= 480)

{

initImage.Save("D://test.jpg", ImageFormat.Jpeg);

}

else

{

int initWidth = initImage.Width;

int initHeight = initImage.Height;

if (initWidth != initHeight)

{

Image pickedImage = null;

Graphics pickedG = null;

if (initWidth > initHeight)

{

pickedImage = new Bitmap(initHeight, initHeight);

pickedG = Graphics.FromImage(pickedImage);

pickedG.InterpolationMode = InterpolationMode.HighQualityBicubic;

pickedG.SmoothingMode = SmoothingMode.HighQuality;

Rectangle fromR = new Rectangle(0, 0, initHeight, initHeight);//(initWidth - initHeight) / 2

Rectangle toR = new Rectangle(0, 0, initHeight, initHeight);

pickedG.DrawImage(initImage, fromR);

pickedImage.Save("D://jpg//test2.jpg");

initWidth = initHeight;

}

initImage = (Image)pickedImage.Clone();

pickedG.Dispose();

pickedImage.Dispose();

initImage.Save("D://jpg//test1.jpg");

}

Image resultImage = new Bitmap(150, 150);

Graphics resultG = Graphics.FromImage(resultImage);

resultG.InterpolationMode = InterpolationMode.HighQualityBicubic;

resultG.SmoothingMode = SmoothingMode.HighQuality;

resultG.Clear(Color.White);

resultG.DrawImage(initImage, new Rectangle(0, 0, 100, 100), new Rectangle(0, 0, initWidth, initHeight), GraphicsUnit.Pixel);

ImageCodecInfo[] icis = ImageCodecInfo.GetImageEncoders();

ImageCodecInfo ici = null;

foreach (ImageCodecInfo item in icis)

{

if (item.MimeType == "image/jpeg" || item.MimeType == "image/bmp" || item.MimeType == "image/png" || item.MimeType =="image/gif")

{

ici = item;

}

}

EncoderParameters ep = new System.Drawing.Imaging.EncoderParameters(1);

ep.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)100);

resultImage.Save("D://jpg//test.jpg", ici, ep);

ep.Dispose();

resultG.Dispose();

resultImage.Dispose();

initImage.Dispose();

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新C#教程学习
    热门C#教程学习
    编程开发子分类