当前位置: 首页 > news >正文

[实战]MVC5+EF6+MySql企业网盘实战(5)——登录界面,头像等比例压缩

写在前面

关于该项目,已经很久没更新了。实在是找不到一个好的ui,没办法就在网上找了一个还不错的,就凑合着先用着吧,先出第一版,以后的再想着去优化。最近更新与网盘项目相关的内容是准备在项目中使用一个美化的弹出框,所以就使用了bootstrap的modal弹出框。关于如何使用可以参考前面的文章,下面也有链接。

系列文章

[EF]vs15+ef6+mysql code first方式

[实战]MVC5+EF6+MySql企业网盘实战(1)

[实战]MVC5+EF6+MySql企业网盘实战(2)——用户注册

[实战]MVC5+EF6+MySql企业网盘实战(3)——验证码

[实战]MVC5+EF6+MySql企业网盘实战(4)——上传头像

[Bootstrap]modal弹出框

登录界面

在文章最后,将提供源代码,这里就不再贴代码了。

考虑到企业网盘是针对一个企业的,所以这里将用户信息类中的公司字段去掉。还有注册用户信息的时候,将密码进行md5加密保存。

另外为了保证头像的一致性,对图片进行等比例压缩,压缩成100*100格式的图片。

压缩方法:

   /// <summary>
        /// 等比例压缩图片
        /// </summary>
        private void SaveImageByWidthHeight(int intImgCompressWidth, int intImgCompressHeight, Stream stream, string strFileSavePath)
        {
            //从输入流中获取上传的image对象
            using (Image img = Image.FromStream(stream))
            {
                //根据压缩比例求出图片的宽度
                int intWidth = intImgCompressWidth / intImgCompressHeight * img.Height;
                int intHeight = img.Width * intImgCompressHeight / intImgCompressWidth;
                //画布
                using (System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(img, new Size(intImgCompressWidth, intImgCompressHeight)))
                {
                    //在画布上创建画笔对象
                    using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap))
                    {
                        //将图片使用压缩后的宽高,从0,0位置画在画布上
                        graphics.DrawImage(img, 0, 0, intImgCompressWidth, intImgCompressHeight);
                        //保存图片
                        bitmap.Save(strFileSavePath);
                    }
                }
            }
        }

 测试

总结

这里也是熟悉mvc中表单的提交,当然使用ajax来进行无刷新的验证用户体验会更好,下一步将使用无刷新的方式进行用户注册,用户登录的操作。

代码片段:http://pan.baidu.com/s/1i3vXYbb

转载于:https://www.cnblogs.com/wolf-sun/p/4872852.html

相关文章:

  • [转]Java输入输出流的使用详细介绍
  • 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数005·graphics-obj,基本绘图单元,包括线段、矩形、椭圆、圆形...
  • iOS app无launch screen.xib 对各个版本进行适配
  • iOS tintColor解析
  • 19/10/2015 晴 十点
  • GitHub Config文件中[user] [remote origin]的配置
  • Java Web 登录采用非对称加密(RSA算法)
  • DAG 的最短路径算法
  • 推荐一个c++小巧开源且跨平台的图像解码库
  • WDS+MDT部署Windows7操作系统2—;导入启动映像和安装映像
  • 机器学习之一:初认识
  • 10月Web服务器份额:排名不变 仅Apache份额下降
  • AndroidVideoPlayer在线播放视频
  • 谈 DevOps 自动化时,也应该考虑到 SOX 等法案
  • 2015年你需要学习的15种编程语言
  • __proto__ 和 prototype的关系
  • Babel配置的不完全指南
  • CAP理论的例子讲解
  • Java超时控制的实现
  • jdbc就是这么简单
  • MySQL-事务管理(基础)
  • python docx文档转html页面
  • 编写符合Python风格的对象
  • 悄悄地说一个bug
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 译自由幺半群
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 选择阿里云数据库HBase版十大理由
  • ​水经微图Web1.5.0版即将上线
  • #QT(一种朴素的计算器实现方法)
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $L^p$ 调和函数恒为零
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (1)STL算法之遍历容器
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (2)(2.10) LTM telemetry
  • (2)STL算法之元素计数
  • (C++17) optional的使用
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (poj1.3.2)1791(构造法模拟)
  • (九)信息融合方式简介
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (十) 初识 Docker file
  • (算法设计与分析)第一章算法概述-习题
  • (转)3D模板阴影原理
  • (转)Scala的“=”符号简介
  • . NET自动找可写目录
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .net CHARTING图表控件下载地址
  • .NET MVC第三章、三种传值方式
  • @Autowired @Resource @Qualifier的区别
  • [100天算法】-二叉树剪枝(day 48)
  • [20161214]如何确定dbid.txt