SNS社交类网站照片头像裁剪源码

news/2024/5/15 18:25:43/文章来源:https://blog.csdn.net/weixin_34272308/article/details/93995367

客户端js不能操作文件,所以只能先上传图片再在服务器端剪切。

1、上传图片

2、js剪切图片(其实只是选取要剪切的部分)

3、服务器端剪切

     (1)在页面的cs文件中剪切。须放几个隐藏控件以便回传js选取的坐标。

其中剪切图片源码:


using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

 

public class Cut
{
    /// <summary>
    /// 裁剪图片
    /// </summary>
    /// <param name="sourceImg">原图片路径</param>
    /// <param name="desImg">裁剪图片路径</param>
    /// <param name="left">X</param>
    /// <param name="top">Y</param>
    /// <param name="width">宽</param>
    /// <param name="height">高</param>
    public static void CutImage(string sourceImg, string desImg, int left, int top, int width, int height)
    {
        System.Drawing.Image img = System.Drawing.Bitmap.FromFile(sourceImg);
        System.Drawing.Image imgToSave = new System.Drawing.Bitmap(width, height);
        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(imgToSave);
        RectangleF sourceRect = new RectangleF(left, top, width, height);
        RectangleF destinationRect = new RectangleF(0, 0, width, height);

        g.DrawImage(img,
                    destinationRect,
                    sourceRect,
                    GraphicsUnit.Pixel
                    );
        g.Save();
        imgToSave.Save(desImg, System.Drawing.Imaging.ImageFormat.Jpeg);
        g.Dispose();
        imgToSave.Dispose();
        img.Dispose();
    }


}

     (2)在ashx中剪切,可回传文件流。用参数传递坐标。



using System;
using System.Web;
using System.Drawing;
using System.IO;

 

public class ImgCropper_WebHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        string Pic = Convert.ToString(context.Request["p"]);
        int PointX = Convert.ToInt32(context.Request["x"]);
        int PointY = Convert.ToInt32(context.Request["y"]);
        int CutWidth = Convert.ToInt32(context.Request["w"]);
        int CutHeight = Convert.ToInt32(context.Request["h"]);
        int PicWidth = Convert.ToInt32(context.Request["pw"]);
        int PicHeight = Convert.ToInt32(context.Request["ph"]);

        context.Response.ContentType = "image/jpeg";
        ResetImg(context, System.Web.HttpContext.Current.Server.MapPath(Pic), PicWidth, PicHeight, PointX, PointY, CutWidth, CutHeight).WriteTo(context.Response.OutputStream);
    }

    public MemoryStream ResetImg(HttpContext context, string ImgFile, int PicWidth, int PicHeight, int PointX, int PointY, int CutWidth, int CutHeight)
    {
        Image imgPhoto = Image.FromFile(ImgFile);
        Bitmap bmPhoto = new Bitmap(CutWidth, CutHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb);

        Graphics gbmPhoto = Graphics.FromImage(bmPhoto);
        gbmPhoto.DrawImage(imgPhoto, new Rectangle(0, 0, CutWidth, CutHeight), PointX * imgPhoto.Width / PicWidth, PointY * imgPhoto.Height / PicHeight, CutWidth * imgPhoto.Width / PicWidth, CutHeight * imgPhoto.Height / PicHeight, GraphicsUnit.Pixel);

        //保存图片到服务器
        bmPhoto.Save(context.Server.MapPath("upload/") + Guid.NewGuid() + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

        //生成文件流回传
        MemoryStream ms2 = new MemoryStream();
        bmPhoto.Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg);

        imgPhoto.Dispose();
        gbmPhoto.Dispose();
        bmPhoto.Dispose();

        return ms2;
    }


    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}


转载于:https://www.cnblogs.com/MaxIE/archive/2010/09/28/1837799.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_749237.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

filebeat+logstash+influxdb+ Grafana打造网站日志监控系统

filebeatlogstashinfluxdb Grafana打造网站日志监控系统 yexiansen关注 0.822018.02.01 13:13:22字数 1,093阅读 3,109 filebeatlogstashinfluxdb Grafana打造网站日志监控系统 image 采集数据&#xff08;fliebeat&#xff09;->过滤数据&#xff08;logstash&#xff09…

18个黑科技网站,你想要的软件都能找到,请收藏!!!

序言 要说现在啊&#xff0c;我们使用频率最高的设备是啥&#xff0c;那一定是手机啊&#xff0c;几乎不离身&#xff0c;没了它&#xff0c;生活就索然无味啊&#x1f62a;&#xff0c;除了手机&#xff0c;对我来说&#xff0c;排在第二位的就是电脑了。 那么使用手机和电脑…

百度SEO优化那些事(5月14日)相约天极传媒

活动类型: 沙龙讲座 开始时间: 2011-5-14 14:00 活动地点: 北京市海淀区海淀中街15号远中悦莱大厦2层(天极传媒集团公司第一会议室) 性别: 不限 报名截止: 2011-5-14 14:00 报名地址: http://bang.chinabyte.com/thread-502109-1-1.html 百度&#xff0c;全球最大的中文搜…

使用HTML5,CSS3和jQuery增强网站用户体验

记 得几年前如果你需要添加一些互动元素到你的网站中用来改善用户体验&#xff1f; 是不是立刻就想到了flash实现&#xff1f;这彷佛年代久远的事了。使用现在最流行的web技术 HTML5&#xff0c;CSS3和jQuery&#xff0c;同样也可以实现类似的用户体验。而且使用这些特性将会比…

9月第1周社交网站综合排行:网易微博跌出榜外

据站长之家综合排行榜数据&#xff0c;9月第1周&#xff08;2013-08-27至2013-09-02&#xff09;的社交网站排行的首位是新浪微博&#xff0c;其综合积分为4415&#xff0c;第二位是综合积分为4261的豆瓣网&#xff0c;第三位是综合积分为4249的腾讯微博。而网易微博在今周跌出…

管中窥豹:美丽说的一些SEO优化小细节

大家好&#xff0c;我是虚子雨。前面跟大家分享过关于美丽说和蘑菇街的品牌关键词策略&#xff0c;得到一些朋友的反馈&#xff0c;有好评&#xff0c;多半来自好朋友&#xff0c;也有差评&#xff0c;多半来自一 些真心看过文章的朋友&#xff0c;这说明文章的确有不足&#x…

B2B策划书:B2B行业网站未来5年发展趋势预测

B2B行业网站目前已经发展成一个不可忽视的行业&#xff0c;虽然绝大部分的企业本身不是很大&#xff0c;只能算是中小企业&#xff0c;但是由于涉及到的公司多、行业范围广、从业者多&#xff0c;且还是一个值得投资的产业&#xff0c;在2009年刚过&#xff0c;2010年到来的时候…

推荐大家几个网站

2019独角兽企业重金招聘Python工程师标准>>> 36kr 关注互联网信息 拉勾网 互联网公司招聘 Nitrous.IO 一个远程IDE开发环境 Terminal 看名字就知道了&#xff0c; Jelastic 一个远程的服务器&#xff0c;可以配置tomcat服务器 stack overflow githu…

Node与Git环境搭建登录网站

Node与Git环境搭建登录网站 引言 本篇博文教程用于前端搭建环境并实现简易登录网站,使用Git爬取前端项目,进行快速开发。 准备文件 配置Node与Git环境变量 (1) node配置:右击此电脑–>打开环境变量—>高级–>在系统变量中新建变量:NODE_HOME,变量值为文件所在地…

大型网站架构演变和知识体系 -转载学习

架构演变第一步&#xff1a;物理分离webserver和数据库 最开始&#xff0c;由于某些想法&#xff0c;于是在互联网上搭建了一个网站&#xff0c;这个时候甚至有可能主机都是租借的&#xff0c;但由于这篇文章我们只关注架构的演变历程&#xff0c;因此就假设这个时候 已经是托管…

经典案例:那些让人赞不绝口的创新 HTML5 网站

在过去的10年里&#xff0c;网页设计师使用 Flash、JavaScript 或其他复杂的软件和技术来创建网站。但现在你可以前所未有的快速、轻松地设计或创造互动的、有趣好看的网站。如何创建&#xff1f;答案是 HTML5 。 这篇文章向大家展示20个创新的 HTML5 网站。看看这些惊人的 HTM…

springsecurity oauth2_Spring Security 实战干货:客户端OAuth2授权请求的入口在哪里-WEB资讯专栏-DMOZ中文网站分类目录

CSDN 双十一 活动优惠提前抢&#xff01;全站好课1元起&#xff0c;万券齐发折上折&#xff01; 超值膨胀金【10元抵100元】限量发放&#xff01;11月11日当天全站通用&#xff0c;更有机会享受折上折优惠&#xff01;仅限299份&#xff0c;先到先得&#xff01; 1. 前言 在Spr…

layui的tab加入其他页面_SEO干货知识分享:字数会影响SEO吗?| 教你如何为页面撰写合格的内容...

你的页面内容需要多少字数才能排到谷歌搜索结果第一页&#xff1f;搜索引擎优化的最佳内容长度是多少&#xff1f;今天就让我们来找出字数和谷歌SEO优化背后的关系。当我们在为页面确定内容时&#xff0c;“我需要写多少字&#xff1f;”是其中一个人们经常会问到的问题&#x…

wap建站程序源码_免费网站建站好不好?超简单建站教程来了

现在各种建站模式都开始陆续出现&#xff0c;有写代码建站&#xff0c;模板建站&#xff0c;免费建站&#xff0c;付费建站……对于大多数缺少资金和时间&#xff0c;也不懂技术的小白来说&#xff0c;可选余地就非常有限了&#xff0c;一般是选择找免费网站建站。那么这种建站…

黄聪:WordPress 多站点建站教程(二):后台(管理网络)设置详解,如何管理子站的用户、主题、插件、设置等功能...

建立好了子站&#xff0c;我们需要有个地方配置所有子站的主题、插件等功能&#xff0c;我们可以在后台看到 我的站点--管理网络 如下图&#xff1a; 在 管理网络--仪表盘 里面&#xff0c;我们可以创新用户和站点&#xff0c;也提供了查询功能。 要注意的是&#xff1a;当你新…

各大网站CSS代码初始化集合

2019独角兽企业重金招聘Python工程师标准>>> css代码之所以初始化&#xff0c;是因为能尽量减少 各浏览器之间的兼容性问题!腾讯QQ官网 样式初始化 body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select{margin:0;padding:0} b…

github mysql优化_GitHub如何通过迁移MySQL数据库提高网站性能

GitHub&#xff0c;作为广泛使用的开源代码库以及版本控制系统&#xff0c;其数据库MySQL性能的优劣对整个网站平台有着举足轻重的影响。接下来我们一起GitHub&#xff0c;作为广泛使用的开源代码库以及版本控制系统&#xff0c;其数据库MySQL性能的优劣对整个网站平台有着举足…

熊掌号 php提交,网站接入熊掌号,网页配置并提交

百度熊掌号是什么&#xff1f;百度熊掌号是站长、自媒体、开发者、商家等各种内容和服务提供者入驻百度的身份账号&#xff0c;该账号可实现包括百度搜索资源平台、百度数据开放平台、百家号自媒体平台、用户运营平台等各类平台的能力互通。开通熊掌号之后站点自然也就有了原创…

cefsharp内嵌资源html的读取,C#(csharp)用CefSharp开发实现一个浏览器,抓取网站任意资源...

前言&#xff1a;不少网站会保护自己&#xff0c;防止别人下载图片。因此下载器&#xff0c;先后改了好几次&#xff0c;不断技术升级。早期 用WebClient 下载 HTML 分析 URL 下载。后来 为了下载 手机网站的图片&#xff0c;用上了 User-Agent 特性&#xff0c;模拟手机浏览器…

在线购物系统后台登录界面html代码,电子商城(购物网站)html模板源码

【实例简介】电子商城【实例截图】【核心代码】└─legendshop-UI│ category.html│ category_list.html│ index.html│ login.html│ shopcart.html│ userhome.html│ views.html│├─css│ bootstrap.css│ member.css│ order3.css│ produc…