典型的电子商务网站有哪些公司网站设计要多少钱

diannao/2026/1/17 9:15:13/文章来源:
典型的电子商务网站有哪些,公司网站设计要多少钱,南宁cms建站,外包app多少钱今天大家分享的是一个专注于NetCore平台图像处理的开源项目#xff0c;老实说为这篇文章取名字想了5分钟#xff0c;可能是词穷亦或是想更好的表达出这款开源项目的作用#xff1b;这个项目在图像处理方面有很多功能#xff0c;如#xff1a;缩放#xff0c;裁剪#xf… 今天大家分享的是一个专注于NetCore平台图像处理的开源项目老实说为这篇文章取名字想了5分钟可能是词穷亦或是想更好的表达出这款开源项目的作用这个项目在图像处理方面有很多功能如缩放裁剪绘画组合图片等今天主要讲的是用她怎么来绘图和生成验证码的实际例子。 号外近来淘宝服装小店进了批新货有需要购衣的朋友可以来看看地址在文章最下方。 简单介绍ImageSharp 试试画两条线实线和虚线 生成个缩略图 在图片上画字 制作一个验证码图片 结合RazorPage模板展示验证码图片 简单介绍ImageSharp ImageSharp是对NetCore平台扩展的一个图像处理方案在写下本文为止它最新的nuget下载量为4,034次作者团队最近一个月刚更新的包没错这里说最新是因为她前身和之前的版本都很受欢迎下载量也超高她的git项目地址https://github.com/SixLabors/ImageSharp。如果您的项目和我一样是2.0版本2.0以前的略过那么直接可以通过vs的nuget控制台下载对应的包注意绘图的话需要分别下载如下两个包  Install-Package SixLabors.ImageSharp -Version 1.0.0-beta0001   Install-Package SixLabors.ImageSharp.Drawing -Version 1.0.0-beta0001  ImageSharp用法有朋友之前写过不过都主要针对于之前的版本本章主要用到的都是最新的有部分写法可能不相同。 试试画两条线实线和虚线 这里将用她来画两条直线并保存成图片主要起到一个介绍作用先来看实线如下代码 var path D:\F\学习\vs2017\netcore\Study.AspNetCore\WebApp02-1\wwwroot\images;            //默认实线using (ImageRgba32 image new ImageRgba32(500, 500)) //画布大小            {image.Mutate(x x.BackgroundColor(Rgba32.WhiteSmoke).   //画布背景                            DrawLines(Rgba32.HotPink, //字体颜色5, //字体大小new SixLabors.Primitives.PointF[]{                                    new Vector2(10, 10),                                    new Vector2(200, 150),                                    new Vector2(50, 300)} //两点一线坐标                        ));image.Save(${path}/1.png); //保存}  总要步骤我都备注上文字了这里主要通过两点一线来绘制图形Vector2对象值得注意就是C#二维坐标(x,y)对象其实除了Vector2还有Vector3(三维坐标)等这对于做u3d的朋友来说不会陌生老实说这个也是我在接触u3d时候才知道有这个类的。下面来看效果图 由两个两点一线构造的一个角下面来看下虚线绘制 //虚线using (ImageRgba32 image new ImageRgba32(500, 500)) //画布大小            {image.Mutate(x x.BackgroundColor(Rgba32.WhiteSmoke).   //画布背景                            DrawLines(Pens.Dash(Rgba32.HotPink, 5), //字体大小new SixLabors.Primitives.PointF[]{                                    new Vector2(10, 10),                                    new Vector2(200, 150),                                    new Vector2(50, 300)} //两点一线坐标                        ));image.Save(${path}/2.png); //保存} 步骤都差不多只是调用了DrawLines的扩展方法而已其他线条例子就不多说了各位自行实验。 生成个缩略图和在图片上画字 对于图片类型的网站来说缩略图是常见的这里用ImageSharp生成缩略图很简单本实例用8.png做样本来生成缩略图8-1.png直接看例子如下是netstandard 1.3的例子 //缩略图using (ImageRgba32 image Image.Load(${path}/8.png)){image.Mutate(x x.Resize(image.Width / 2, image.Height / 2));image.Save(${path}/8-1.png);} 为了更好的对比缩略图和原图的区别这里对接拿两图的属性做对比如 能很好的看出缩略图文件大小和像素都减半了实际缩略的时候不一定减半这全由参数控制Resize(width,height) 画字在图片上画我们想要的字其实类似于水印的一种需求下面是在图片上画字的代码 //画字 var install_Family new FontCollection().Install(System.IO.Path.Combine(Directory.GetCurrentDirectory(), wwwroot/bak, STKAITI.TTF)                //C:\Windows\Fonts\STKAITI.TTF   //字体文件                );            var font new Font(install_Family, 50); //字体using (ImageRgba32 image Image.Load(${path}/8.png)){image.Mutate(x x.DrawText(                        你们好我是神牛, //文字内容                         font,Rgba32.HotPink,                         new Vector2(50, 150),TextGraphicsOptions.Default));image.Save(${path}/8-2.png);} 这里用ImageSharp在图片上画字的时候需要注意字体因为windows系统自带了字体问题这里以STKAITI.TTF字体文件为例它存储于 C:\Windows\Fonts\STKAITI.TTF 目录当然您可以直接把它拷贝到我们项目中如下我这里的例子一样做法这里只测试了windows下可用尚未测试linux下直接使用该字体文件是否可行 制作一个验证码图片 下面我们将用她来画一个验证码类型的图片通常验证码都有一些点和线来干扰上面已经有画线例子了这里展示怎么画点 //画点规则的点其他的各位自行写算法 var dianWith 1; //点宽度var xx 300; //图片宽度var yy 200; //图片高度var xx_space 10; //点与点之间x坐标间隔var yy_space 5; //y坐标间隔var listPath new ListIPath();            for (int i 0; i xx / xx_space; i){                for (int j 0; j yy / yy_space; j){                    var position new Vector2(i * xx_space, j * yy_space);                    var linerLine new LinearLineSegment(position, position);                    var shapesPath new SixLabors.Shapes.Path(linerLine);listPath.Add(shapesPath);}}            using (ImageRgba32 image new ImageRgba32(xx, yy)) //画布大小            {image.Mutate(x x.BackgroundColor(Rgba32.WhiteSmoke).   //画布背景                            Draw(Pens.Dot(Rgba32.HotPink, dianWith),   //大小new SixLabors.Shapes.PathCollection(listPath) //坐标集合                        ));image.Save(${path}/9.png); //保存} 这里直接利用IImageProcessingContextTPixel扩展方法Draw来绘制有规则的点如图所示 比较单调或许您们能做的更好看些下面来做验证码图片主要由画点画字验证码图片这里我封装了一个方法直接生成验证码图片 /// summary/// 画点画字验证码图片  /// /summary/// param namecontent验证码/param/// param nameoutImgPath输出图片路径/param/// param namefontFilePath字体文件/param/// param namex图片宽度/param/// param namey图片高度/parampublic void GetValidCode(                    string content 我是神牛,                    string outImgPath D:/F/学习/vs2017/netcore/Study.AspNetCore/WebApp02-1/wwwroot/images/10.png,                    string fontFilePath D:\F\学习\vs2017\netcore\Study.AspNetCore\WebApp02-1\wwwroot\bak\STKAITI.TTF,                    int xx 150, int yy 25){            var dianWith 1; //点宽度var xx_space 10; //点与点之间x坐标间隔var yy_space 5; //y坐标间隔var wenZiLen content.Length; //文字长度var maxX xx / wenZiLen; //每个文字最大x宽度var prevWenZiX 0; //前面一个文字的x坐标var size 16;//字体大小            //字体var install_Family new FontCollection().Install(fontFilePath              //C:\Windows\Fonts\STKAITI.TTF   //windows系统下字体文件              );            var font new Font(install_Family, size); //字体            //点坐标var listPath new ListIPath();            for (int i 0; i xx / xx_space; i){                for (int j 0; j yy / yy_space; j){                    var position new Vector2(i * xx_space, j * yy_space);                    var linerLine new LinearLineSegment(position, position);                    var shapesPath new SixLabors.Shapes.Path(linerLine);listPath.Add(shapesPath);}}            //画图using (ImageRgba32 image new ImageRgba32(xx, yy)) //画布大小            {image.Mutate(x {                    //画点var imgProc x.BackgroundColor(Rgba32.WhiteSmoke). //画布背景                              Draw(Pens.Dot(Rgba32.HotPink, dianWith),   //大小new SixLabors.Shapes.PathCollection(listPath) //坐标集合                          );                    //逐个画字for (int i 0; i wenZiLen; i){                        //当前的要输出的字var nowWenZi content.Substring(i, 1);                        //文字坐标var wenXY new Vector2();                        var maxXX prevWenZiX (maxX - size);wenXY.X new Random().Next(prevWenZiX, maxXX);wenXY.Y new Random().Next(0, yy - size);prevWenZiX Convert.ToInt32(Math.Floor(wenXY.X)) size;                        //画字                        imgProc.DrawText(nowWenZi,   //文字内容                           font,i % 2 0 ? Rgba32.HotPink : Rgba32.Red,wenXY,TextGraphicsOptions.Default);}});                //保存到图片                image.Save(outImgPath);}} 通过简单的调用 GetValidCode(我是神牛);return Page(); 能得到如图验证码图片的效果 文字看起来好像在点的前面不过没关系只需要把画点和画字的先后顺序修改下就行了这里不贴图了 结合RazorPage模板展示验证码图片 上面一节是生成了验证码图片当然实际场景中我们是不需要生成验证码物理图片的只需要返回一个流或base64等方式输出到web界面上就行了我们可以来看看 ImageTPixel 保存时候的扩展方法 好吧有点多我们只需要明白她能转base64stream保存为图片等就行了这里我们将用到 SaveAsPng(Stream) 方法然后获取他的byte[]如下代码 /// summary/// 画点画字验证码byte[]          /// /summary/// param namecontent验证码/param/// param nameoutImgPath输出图片路径/param/// param namefontFilePath字体文件/param/// param namex图片宽度/param/// param namey图片高度/parampublic byte[] GetValidCodeByte(                    string content 我是神牛,                    string fontFilePath D:\F\学习\vs2017\netcore\Study.AspNetCore\WebApp02-1\wwwroot\bak\STKAITI.TTF,                    int xx 150, int yy 25){            var bb default(byte[]);            try{           var dianWith 1; //点宽度var xx_space 10; //点与点之间x坐标间隔var yy_space 5; //y坐标间隔var wenZiLen content.Length; //文字长度var maxX xx / wenZiLen; //每个文字最大x宽度var prevWenZiX 0; //前面一个文字的x坐标var size 16;//字体大小                //字体var install_Family new FontCollection().Install(fontFilePath                  //C:\Windows\Fonts\STKAITI.TTF   //windows系统下字体文件                  );                             var font new Font(install_Family, size); //字体                //点坐标var listPath new ListIPath();                for (int i 0; i xx / xx_space; i){                    for (int j 0; j yy / yy_space; j){                        var position new Vector2(i * xx_space, j * yy_space);                        var linerLine new LinearLineSegment(position, position);                        var shapesPath new SixLabors.Shapes.Path(linerLine);listPath.Add(shapesPath);}}                 //画图using (ImageRgba32 image new ImageRgba32(xx, yy)) //画布大小                {image.Mutate(x {                    var imgProc x;                        //逐个画字for (int i 0; i wenZiLen; i){                            //当前的要输出的字var nowWenZi content.Substring(i, 1);                            //文字坐标var wenXY new Vector2();                            var maxXX prevWenZiX (maxX - size);wenXY.X new Random().Next(prevWenZiX, maxXX);wenXY.Y new Random().Next(0, yy - size);prevWenZiX Convert.ToInt32(Math.Floor(wenXY.X)) size;                            //画字                            imgProc.DrawText(nowWenZi,   //文字内容                                   font,i % 2 0 ? Rgba32.HotPink : Rgba32.Red,wenXY,TextGraphicsOptions.Default);}                        //画点 imgProc.BackgroundColor(Rgba32.WhiteSmoke). //画布背景                                     Draw(Pens.Dot(Rgba32.HotPink, dianWith),   //大小new SixLabors.Shapes.PathCollection(listPath) //坐标集合                                 );});                    using (MemoryStream stream new MemoryStream()){image.SaveAsPng(stream);bb stream.GetBuffer();}}}                    catch (Exception ex){}            return bb;} 该方法返回了一个byte[]数组然后通过HttpGet方式请求Razor接口前端就能够获取到这个验证码图片byte[]了 /// summary/// Get获取验证码图片byte[]         /// /summary/// returns/returnspublic FileResult OnGetValidCode(){            var codebb GetValidCodeByte(DateTime.Now.ToString(mmssfff));            return File(codebb, image/png);} 我们通过get请求获取验证码 http://localhost:1120/login?handlerValidCode 然后得到如图效果 本篇内容到此就结束了如果对您有好的帮助不妨点个“赞”一起努力推动NetCore发展吧谢谢。 原文地址 http://www.cnblogs.com/wangrudong003/p/7656842.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注

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

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

相关文章

泉州网站建设技术外包承德企业网站建设公司

map 类似其它语言中的哈希表或字典,以key-value形式存储数据key必须是支持或!比较运算的类型,不可以是函数、map或sliceMap查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍 Map使用make()创建,支持:这种简写方式 make([k…

招工网站服务官方网站minecraft

整理相关资料,阅读c#课本转载于:https://www.cnblogs.com/JL3Peanut/p/10032318.html

网站数据包括哪些内容重庆建工集团建设网站

近年来,华为自主研发的鸿蒙操作系统(HarmonyOS)引起了广泛的关注和讨论。鸿蒙系统不仅标志着华为在软件领域的一次重大突破,也预示着全球智能设备市场格局的潜在变化。本文将深入探讨鸿蒙系统的兴起、其在市场上的表现以及对程序员…

长沙网站建设流程公司网站宣传自己做的灯展

动画是当今用户界面的关键因素。当使用核心动画的时候,动画是自动完成的。没有动画的循环和计数器。你的应用程序不负负责重绘,也不负责跟踪动画的当前状态。动画在独立线程里面自动执行,没有和你的应用程序交互。本章提供了对动画类的概览&a…

推荐十个国外网站wordpress 调用备案号

关于Git的一些基础用法 1. 前言2. 使用GitHub/gitee创建项目2.1 创建账号2.2 创建项目2.3 下载仓库到本地2.4 提交代码到远端仓库2.5 查看日志2.6 同步远端仓库和本地仓库 1. 前言 首先说一个冷知识(好像也不是很冷),Linux和git的创始人是同…

公司建设网站怎么作账怎么添加网站 多少钱

使用Maven编译Tomcat源码 准备工作 编译工具:Intellij Idea 15.0.2Tomcat版本:7.0.69 下载链接JDK版本:1.7.0_80Maven版本:3.05编译步骤 1. 在工作空间中建立目录 TomcatSource,下载源码解压到此文件夹,完成后目录结构…

专业简历制作网站有哪些wordpress 在线答题

2019独角兽企业重金招聘Python工程师标准>>> Builder模式定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们…

做地方门户网站的资质海口建网站公司

Hi, 大家好,今天阿目分享的是一个嵌入式软件面试的常见问题,内存分布或者说程序在内存中的布局,我们写的程序是按照怎么的准则放在内存中的? 一般有操作系统的嵌入式设备,都会有一个Bootloader, 它负责在上电后初始化…

免费建站网站一级大录像不卡电子商务平台经营者对于竞价排名的商品或服务

最近项目中大量使用了Spring Cloud Feign来对接http接口,踩了不少坑,也产生了一些对RESTFUL接口设计的想法,特此一篇记录下。SpringMVC的请求参数绑定机制了解Feign历史的朋友会知道,Feign本身是Netflix的产品,Spring …

中国铁塔公司招聘网站企业网站建设相关书籍在线阅读

grails框架框架通过为程序员提供一些有用的功能来简化应用程序开发过程。 由于开发人员的普遍使用,Java框架经常被开发人员使用。 您可以在市场上找到各种Java开发框架。 新手开发人员经常在论坛上发布一个常见问题:“哪种Java框架是最好的?”…

哪个网站推荐做挖机事的贵州 网站备案

内容包含系统能控性结构分解、系统能观测性结构分解以及系统结构规范分解原理,线性系统的内部稳定、BIBO稳定概念及其性质 转载于:https://www.cnblogs.com/ERFishing/p/10314720.html

哪个网站做的win10系统好动画制作软件免费版

360浏览器自动刷新选项设置方法 360浏览器不安装插件自动刷新怎么设置?我们使用浏览器在游览器贴吧的时候,经常会不同的按“CtrlR”或者是“F5”来刷新页面。网上有很多插件可以设置自动刷新页面,小编今天说的只需要在360浏览器设置一下就能实现这个功能…

青浦网络公司网站广告公司网页页面设计模板

(1) 我们要做的是,根据原始纹理T0创建一系列的纹理(通常使用平均滤波):T1、T2…Tn,其中每个纹理的大小都是前一个纹理的1/4,即长度和宽度减半,如图12.40所示。 要根据前一个mip纹理计算当前纹…

沈阳工伤保险做实在哪个网站服务公司起名

Hive 中的条件函数允许你在查询中基于某些条件执行逻辑操作。以下是你提到的条件函数的详细讲解,包括案例和使用注意事项: IF() 功能:根据条件返回两个表达式中的一个。语法:IF(boolean_test, value_if_true, value_if_false)案例:SELECT IF(1=1, true, false); 结果为 tr…

菲律宾做网站企业内部网站源码

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 给你一个下…

制作网站的顺序是相城网页设计报价

数据压缩是一个软件开发中的常见需求:很多时候需要先将较大的数据进行压缩然后再通过网络等进行传输。在 .NET 中,有多个压缩算法供我们选择:Deflate、GZip 和 Br 。这些压缩算法都是基于流(Stream)的,在对…

广州加盟网站建设萍乡建站公司

SSM框架的学习与应用(Spring Spring MVC MyBatis)-Java EE企业级应用开发学习记录(第五天)MyBatis的注解开发 ​ 昨天我们深入学习了MyBatis多表之间的关联映射,了解掌握了一对一关联映射,一对多关联映射,嵌套查询方…

网站宣传方案高端网站定制站

1. lambda 函数概述lambda 表达式是一种匿名函数,即没有函数名的函数;该匿名函数是由数学中的λ演算而来的。通常情况下,lambda函数的语法定义为:[capture] (parameters) mutable ->return-type {statement}其中:[c…

建设网站企业网上银行登录入口网站定制制作

这篇文章是我最近十天口语系列文章的合辑,文章比较长,一万五千余字。但是系统化地归纳了自己十多年的英语尤其是口语方面的学习经历与总结思考。我不是个纯粹的英语专业学生,我甚至不是任何英语相关专业的学生,但是我和英语却有着…

找网站推广濮阳吧

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootthymeleaf的物业管理系统(源代码数据库)129 一、系统介绍 本项目前后端分离,本系统分为管理员、小区管理员、用户三种角色 1、用户: 登…