爱问知识人 爱问教育 医院库

网络编辑在asp.net中如何自动调整上传图片的像率大小(宽高)

首页

网络编辑在asp.net中如何自动调整上传图片的像率大小(宽高)

网络编辑在asp.net中如何自动调整上传图片的像率大小(宽高)上传照片不能自动调整大小

提交回答

全部答案

    2018-05-28 12:26:22
  •   自动调整上传图片大小 可以有两种方法:
    1是上传时候同时生成图片缩略图;
    2是在显示图片时候,等比例压缩 图片大小 这个用js可以实现;
    生成缩略图代码(C#):
    ///
    /// 生成缩略图
    ///
    ///
    源图路径(物理路径)
    ///
    缩略图路径(物理路径)
    ///
    缩略图宽度
    ///
    缩略图高度
    ///
    生成缩略图的方式

    public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
    {
    System。
      Drawing。Image originalImage = System。Drawing。Image。FromFile(originalImagePath);
    int towidth = width;
    int toheight = height;
    int x = 0;
    int y = 0;
    int ow = originalImage。
      Width;
    int oh = originalImage。Height;
    switch (mode)
    {
    case "HW"://指定高宽缩放(可能变形)
    break;
    case "W"://指定宽,高按比例
    toheight = originalImage。
      Height * width / originalImage。Width;
    break;
    case "H"://指定高,宽按比例
    towidth = originalImage。
      Width * height / originalImage。Height;
    break;
    case "Cut"://指定高宽裁减(不变形)
    if ((double)originalImage。
      Width / (double)originalImage。Height > (double)towidth / (double)toheight)
    {
    oh = originalImage。Height;
    ow = originalImage。
      Height * towidth / toheight;
    y = 0;
    x = (originalImage。Width - ow) / 2;
    }
    else
    {
    ow = originalImage。
      Width;
    oh = originalImage。Width * height / towidth;
    x = 0;
    y = (originalImage。Height - oh) / 2;
    }
    break;
    default:
    break;
    }
    //新建一个bmp图片
    System。
      Drawing。Image bitmap = new System。Drawing。Bitmap(towidth, toheight);
    //新建一个画板
    Graphics g = System。Drawing。
      Graphics。FromImage(bitmap);
    //设置高质量插值法
    g。InterpolationMode = System。Drawing。Drawing2D。InterpolationMode。
      High;
    //设置高质量,低速度呈现平滑程度
    g。SmoothingMode = System。Drawing。Drawing2D。SmoothingMode。HighQuality;
    //清空画布并以透明背景色填充
    g。
      Clear(Color。Transparent);
    //在指定位置并且按指定大小绘制原图片的指定部分
    g。DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),
    new Rectangle(x, y, ow, oh),
    GraphicsUnit。
      Pixel);
    try
    {
    //以jpg格式保存缩略图
    bitmap。Save(thumbnailPath, System。Drawing。Imaging。
      ImageFormat。Jpeg);
    }
    catch (System。Exception e)
    {
    throw e;
    }
    finally
    {
    originalImage。
      Dispose();
    bitmap。Dispose();
    g。Dispose();
    }
    }
    等比例压缩的js代码如下:
    function DrawImage(ImgD,iwidth,iheight){
    //参数(图片,允许的宽度,允许的高度)
    var image=new Image();
    image。
      src=ImgD。src;

    if(image。width>0 && image。height>0){
    if(image。width/image。height>= iwidth/iheight){
    if(image。
      width>iwidth){
    ImgD。width=iwidth;
    ImgD。height=(image。height*iwidth)/image。width;
    }else{
    ImgD。
      width=image。width;
    ImgD。height=image。height;
    }
    }else{
    if(image。height>iheight){
    ImgD。
      height=iheight;
    ImgD。width=(image。width*iheight)/image。height;
    }else{
    ImgD。width=image。
      width;
    ImgD。height=image。height;
    }
    }
    }
    }
    用法:。

    皇***

    2018-05-28 12:26:22

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):