zoukankan      html  css  js  c++  java
  • asp.net压缩图片

    public static void MakeSmallImg(System.IO.Stream fromFileStream, string fileSaveUrl, System.Double templateWidth, System.Double templateHeight)
    {
    //从文件取得图片对象,并使用流中嵌入的颜色管理信息
    System.Drawing.Image myImage = System.Drawing.Image.FromStream(fromFileStream, true);
    //缩略图宽、高
    System.Double newWidth = myImage.Width, newHeight = myImage.Height;
    //宽大于模版的横图
    if (myImage.Width > myImage.Height || myImage.Width == myImage.Height)
    {
    if (myImage.Width > templateWidth)
    {
    //宽按模版,高按比例缩放
    newWidth = templateWidth;
    newHeight = myImage.Height * (newWidth / myImage.Width);
    }
    }
    //高大于模版的竖图
    else
    {
    if (myImage.Height > templateHeight)
    {
    //高按模版,宽按比例缩放
    newHeight = templateHeight;
    newWidth = myImage.Width * (newHeight / myImage.Height);
    }
    }
    //取得图片大小
    System.Drawing.Size mySize = new Size((int)newWidth, (int)newHeight);
    //新建一个bmp图片
    System.Drawing.Image bitmap = new System.Drawing.Bitmap(mySize.Width, mySize.Height);
    //新建一个画板
    System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
    //设置高质量插值法
    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
    //设置高质量,低速度呈现平滑程度
    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
    //清空一下画布
    g.Clear(Color.White);
    //在指定位置画图
    g.DrawImage(myImage, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height),
    new System.Drawing.Rectangle(0, 0, myImage.Width, myImage.Height),
    System.Drawing.GraphicsUnit.Pixel);
    ///文字水印
    //System.Drawing.Graphics G=System.Drawing.Graphics.FromImage(bitmap);
    //System.Drawing.Font f=new Font("宋体",10);
    //System.Drawing.Brush b=new SolidBrush(Color.Black);
    //G.DrawString("myohmine",f,b,10,10);
    //G.Dispose();
    ///图片水印
    //System.Drawing.Image copyImage = System.Drawing.Image.FromFile(System.Web.HttpContext.Current.Server.MapPath("pic/1.gif"));
    //Graphics a = Graphics.FromImage(bitmap);
    //a.DrawImage(copyImage, new Rectangle(bitmap.Width-copyImage.Width,bitmap.Height-copyImage.Height,copyImage.Width, copyImage.Height),0,0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
    //copyImage.Dispose();
    //a.Dispose();
    //copyImage.Dispose();
    //保存缩略图
    bitmap.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg);
    g.Dispose();
    myImage.Dispose();
    bitmap.Dispose();
    }

    复制代码 代码如下:

    private void button2_Click(object sender, EventArgs e)
    {
    OpenFileDialog fileDialog = new OpenFileDialog();
    fileDialog.Title = "选择图片文件";
    // fileDialog.Filter = "excel files (*.xls)|*.xls";
    fileDialog.FilterIndex = 1;
    if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
    System.IO.FileStream file =System.IO.File.Open(fileDialog.FileName,System.IO.FileMode.Open);
    System.IO.Stream strea = file;
    file.Close();
    MakeSmallImg(strea, "缩略图.jpg", 150, 150);
    // file.Close();
    }
    }
  • 相关阅读:
    CH1301 邻值查找【set应用】
    poj1185 炮兵阵地【状压DP】
    codeforces#516 Div2---ABCD
    2017ACM-ICPC沈阳区域赛
    poj2411 Mondriaan's Dream【状压DP】
    hdu2196 Computer【树形DP】【换根法】
    poj3345 Bribing FIPA【树形DP】【背包】
    poj1463 Strategic game【树形DP】
    poj1191 棋盘分割【区间DP】【记忆化搜索】
    CH5E09 能量相连【区间DP】
  • 原文地址:https://www.cnblogs.com/mooncher/p/2036761.html
Copyright © 2011-2022 走看看