C#图片剪切与缩小的实例


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();
	}
} 
—— 完 ——
相关推荐
评论

立 为 非 似

中 谁 昨 此

宵 风 夜 星

。 露 , 辰

文章点击榜

细 无 轻 自

如 边 似 在

愁 丝 梦 飞

。 雨 , 花