在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → mvc 上传图片后剪切图片

mvc 上传图片后剪切图片

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:7.22M
  • 下载次数:54
  • 浏览次数:743
  • 发布时间:2016-03-07
  • 实例类别:C#语言基础
  • 发 布 人:1341011220
  • 文件格式:.rar
  • 所需积分:5
 相关标签: 上传 图片

实例介绍

【实例简介】

【实例截图】

【核心代码】

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Helpers;
using System.Web.Mvc;

namespace PhotoUpload.Controllers
{
    public class UpLoadController : Controller
    {
        //
        // GET: /Upload/

        public ActionResult SetPhoto()
        {
            return View();
        }
        #region 上传头像
        //上传头像
        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult ShangChuanEmpPhoto()
        {
            WebImage pic = GetImageFromRequest();
            int MaxWidth = 600;
            int MaxHeight = 400;
            int MinWidth = 100;
            int MinHeight = 100;
            if (pic != null)
            {
                string imageName = DateTime.Now.ToString("yyyyMMddHHmmfffff");
                string imageFormat = pic.ImageFormat;
                if (pic.Width > MaxWidth || pic.Height > MaxHeight) pic.Resize(MaxWidth, MaxHeight, true, true);
                if (pic.Width < MinWidth || pic.Height < MinHeight) pic.Resize(MinWidth, MinHeight, true, false);
                pic.Save(@"~\Content\Images\\Temp\\"   imageName);

                TouXiangInfo touxiang = new TouXiangInfo()
                {
                    w_full = pic.Width,
                    h_full = pic.Height,
                    tempfilename = imageName   "."   imageFormat
                };
                return Json(touxiang);
            }
            return Content("0");
        }
        public static WebImage GetImageFromRequest()
        {
            var request = System.Web.HttpContext.Current.Request;

            if (request.Files.Count == 0)
            {
                return null;
            }

            try
            {
                var postedFile = request.Files[0];
                var image = new WebImage(postedFile.InputStream)
                {
                    FileName = postedFile.FileName
                };
                return image;
            }
            catch
            {
                return null;
            }
        }
        //裁剪并保存头像
        [HttpPost]
        public ActionResult CaiJianEmpPhoto(string x1, string y1, string w, string h, string w_full, string h_full, string tempfilename)
        {
            WebImage pic = new WebImage(@"~\Content\Images\\Temp\\"   tempfilename);
            if (pic != null)
            {
                string imageName = DateTime.Now.ToString("yyyyMMddHHmmfffff");
                int intW = 0, intH = 0;
                if (h.IndexOf(".") != -1)
                {
                    float tmp = float.Parse(h);
                    intH = (int)tmp;
                }
                else
                    intH = int.Parse(h);

                if (w.IndexOf(".") != -1)
                {
                    float tmp = float.Parse(w);
                    intW = (int)tmp;
                }
                else
                    intW = int.Parse(w);

                pic.Crop(int.Parse(y1), int.Parse(x1), int.Parse(h_full) - (int.Parse(y1)   intH), int.Parse(w_full) - (int.Parse(x1)   intW));

                WebImage picTmp = pic;
                SaveTouXiang(picTmp, TouXiangDaXiao.Middle, imageName, "否");
                picTmp = pic;
                SaveTouXiang(picTmp, TouXiangDaXiao.Big, imageName, "否");
                picTmp = pic;
                SaveTouXiang(picTmp, TouXiangDaXiao.Small, imageName, "否");
                picTmp = pic;
                SaveTouXiang(picTmp, TouXiangDaXiao.Middle, imageName, "是");

                return Content("Small_"   imageName   ".png");
            }
            return Content("0");
        }

        public enum TouXiangDaXiao : int
        {
            Small = 50,
            Middle = 70,
            Big = 160,
        }

        [NonAction]
        public void SaveTouXiang(WebImage pic, TouXiangDaXiao size, string imageName, string ifMask)
        {
            int width = (int)size, height = (int)size;
            switch (size)
            {
                case TouXiangDaXiao.Small:
                    imageName = "Small_"   imageName;
                    width = (int)size   2;
                    height = (int)size   32;
                    break;
                case TouXiangDaXiao.Middle:
                    if (ifMask == "是")
                    {
                        imageName = "Mask_"   imageName;
                        width = (int)size   1;
                        height = (int)size   61;
                    }
                    else
                    {
                        imageName = "Middle_"   imageName;
                        width = (int)size   2;
                        height = (int)size   62;
                    }
                    break;
                case TouXiangDaXiao.Big:
                    imageName = "Big_"   imageName;
                    width = (int)size   2;
                    height = (int)size   92;
                    break;
            }

            pic.Resize(width, height, true, false);
            if (ifMask == "是")
            {
                WebImage mask = new WebImage(@"~\Content\Images\blog-admin-mask.png");
                pic.AddImageWatermark(
                    mask,
                    width: (int)size,
                    height: (int)size,
                    horizontalAlign: "Left",
                    verticalAlign: "Top",
                    opacity: 100,
                    padding: 0
                );
            }
            if (ifMask == "是")
                pic.Crop(0, 0, 1, 1);
            else pic.Crop(1, 1, 1, 1);
            pic.Save(@"~\Content\Images\"   imageName, "png");
        }
        #endregion 上传头像
    }
    //上传图片
    public class TouXiangInfo
    {
        public int x1 { get; set; }
        public int y1 { get; set; }
        public int x2 { get; set; }
        public int y2 { get; set; }
        public int w { get; set; }
        public int h { get; set; }
        public int w_full { get; set; }
        public int h_full { get; set; }
        public string tempfilename { get; set; }
        public string savedfilename { get; set; }
    }
}

标签: 上传 图片

实例下载地址

mvc 上传图片后剪切图片

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警