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

蓬莱有做网站的吗wordpress oss upload

蓬莱有做网站的吗,wordpress oss upload,网站开发总体功能设计,做网站开发公司电话之前对于缩率图的处理是在图片上传到服务器之后#xff0c;同步生成两张不同尺寸的缩率供前端调用#xff0c;刚开始还能满足需求#xff0c;慢慢的随着前端展示的多样化#xff0c;缩率图已不能前端展示的需求#xff0c;所以考虑做一个实时生成图片缩率图服务。 每次调用…之前对于缩率图的处理是在图片上传到服务器之后同步生成两张不同尺寸的缩率供前端调用刚开始还能满足需求慢慢的随着前端展示的多样化缩率图已不能前端展示的需求所以考虑做一个实时生成图片缩率图服务。 每次调用实时生成缩率图不缓存着实有点浪费所以在生成缩率的同时缓存到硬盘一份效率提高很多。 之前从网上看了一下有人用nginx lua实现的效率那是没什么可说的但是时间紧迫自己也没时间去研究所以暂时先用aps.net mvc4来实现 一个以后有时间了再慢慢修改。 用自己熟悉的.net性能可能差那么一点点但是实现速度快保证可以在极端的时间内上线并且在功能上更强。 思路很简单就是根据请求判断需要的缩率图是否已存在于硬盘上如果有直接返回没有则下载原图并生成缩率图到本地返回给客户端。   下面直接粘贴代码片段 /// summary/// 生成图片缩率图Action/// /summary/// param namep原图url/param/// param nameid图片尺寸以及生成缩率图的类型/param/// returns/returns[HttpGet]public async TaskActionResult Index(string p, string id){if (string.IsNullOrEmpty(p)){return new HttpStatusCodeResult(404);}string oPath Regex.Replace(p, http[s]?://(.*?)/, /, RegexOptions.IgnoreCase);int? oWidth 200, oHeight 200;int cutMode 3;string pPath;string oDir;if (!string.IsNullOrEmpty(id)){string[] ss id.Split(new char[] { _ }, StringSplitOptions.RemoveEmptyEntries);if (ss.Length 2){return new HttpStatusCodeResult(404);}if (ss.Length 2){cutMode int.Parse(ss[2]);}oPath oPath.Insert(oPath.LastIndexOf(/) 1, string.Format({0}_{1}_{2}_, ss[0], ss[1], cutMode));oWidth int.Parse(ss[0]);oHeight int.Parse(ss[1]);}pPath Server.MapPath(oPath);oDir Path.GetDirectoryName(pPath);if (!System.IO.File.Exists(pPath)){byte[] imagebytes await FileHelper.DownLoadFileAsync(p);if (!Directory.Exists(oDir)){Directory.CreateDirectory(oDir);}FileHelper.MakeThumbnail(FileHelper.BytToImg(imagebytes), oWidth.Value, oHeight.Value, (ThumbnailMode)cutMode, pPath, true);}return File(pPath, FileHelper.GetContentTypeByExtension(Path.GetExtension(pPath).ToLower()));} 辅助方法 public class FileHelper{/// summary/// 图片后缀和ContentType对应字典/// /summarystatic Dictionarystring, string extensionContentTypeDic;static FileHelper(){if (extensionContentTypeDic null){//.jpg, .png, .gif, .jpegextensionContentTypeDic new Dictionarystring, string();extensionContentTypeDic.Add(.jpg, image/jpeg);extensionContentTypeDic.Add(.png, image/png);extensionContentTypeDic.Add(.gif, image/gif);extensionContentTypeDic.Add(.jpeg, image/jpeg);}}/// summary/// 根据后缀名获取extension/// /summary/// param nameextension/param/// returns/returnspublic static string GetContentTypeByExtension(string extension){if (extensionContentTypeDic.ContainsKey(extension)){return extensionContentTypeDic[extension];}return null;}/// summary /// 将Image对象转化成二进制流 /// /summary /// param nameimage /param /// returns /returns public static byte[] ImageToByteArray(Image image){MemoryStream imageStream new MemoryStream();Bitmap bmp new Bitmap(image.Width, image.Height);Graphics g Graphics.FromImage(bmp);g.DrawImage(image, new System.Drawing.Rectangle(0, 0, image.Width, image.Height));try{bmp.Save(imageStream, image.RawFormat);}catch (Exception e){bmp.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg);}byte[] byteImg imageStream.GetBuffer();bmp.Dispose();g.Dispose();imageStream.Close();return byteImg;}/// summary /// 字节流转换成图片 /// /summary /// param namebyt要转换的字节流/param /// returns转换得到的Image对象/returns public static Image BytToImg(byte[] byt){MemoryStream ms new MemoryStream(byt);Image img Image.FromStream(ms);ms.Close();return img;}/// summary/// 生成缩率图/// /summary/// param nameoriginalImage原始图片Image/param/// param namewidth缩率图宽/param/// param nameheight缩率图高/param/// param namemode生成缩率图的方式/param/// param namethumbnailPath缩率图存放的地址/parampublic static Image MakeThumbnail(Image originalImage, int width, int height, ThumbnailMode mode, string thumbnailPath, bool isSave true){int towidth width;int toheight height;int x 0;int y 0;int ow originalImage.Width;int oh originalImage.Height;switch (mode){case ThumbnailMode.HW://指定高宽缩放可能变形 break;case ThumbnailMode.W://指定宽高按比例 toheight originalImage.Height * width / originalImage.Width;break;case ThumbnailMode.H://指定高宽按比例 towidth originalImage.Width * height / originalImage.Height;break;case ThumbnailMode.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);if (!isSave){return bitmap;}try{//以jpg格式保存缩略图 //bitmap.Save(thumbnailPath, bitmap.RawFormat);bitmap.Save(thumbnailPath, ImageFormat.Jpeg);return bitmap;}catch (System.Exception e){throw e;}finally{originalImage.Dispose();bitmap.Dispose();g.Dispose();}return null;}/// summary/// 下载指定文件/// /summary/// param nameremoteUrl/param/// param namess/parampublic static Taskbyte[] DownLoadFileAsync(string remoteUrl){WebClient wc new WebClient();try{return wc.DownloadDataTaskAsync(remoteUrl);}catch (Exception e){throw new Exception(下载文件失败);}}}public enum ThumbnailMode{/// summary/// 指定高宽缩放可能变形/// /summaryHW,/// summary/// 指定高宽按比例/// /summaryH,/// summary/// 指定宽高按比例/// /summaryW,/// summary/// 指定高宽裁减不变形 /// /summaryCut,}   访问方式 http://www.souji8.com/Home/Index/{width}_{height}_{ThumMode}?p{imageUrl} {imageUrl}:目标图片地址 {ThumMode}: 1:指定高宽按比例、2指定宽高按比例、3指定高宽裁减不变形  {Width}:期望图片宽 {Height}:期望图片高   等有时间了再改成nginxlua 实现。 转载于:https://www.cnblogs.com/straw/p/5459473.html
http://www.sadfv.cn/news/264506/

相关文章:

  • 做网站的书籍东营新闻联播在线直播今晚
  • 会展网站建设做网站一年大概的盈利
  • 做网站需要准备什么资料罗湖商城网站建设找哪家公司比较安全
  • 模板出售网站源码网站开发中如何实现gps定位
  • 二极管 东莞网站建设东莞横沥邮编
  • 查关键词热度的网站青海省建设厅网站执业
  • 网站分类有哪些建wap网站
  • 如何提交网站给百度广州网站建设方案案例
  • 做招聘信息的网站江西中联建设集团有限公司网站
  • 判断网站模板版本视频素材库
  • 网站速度慢wordpresswordpress 主题 mip
  • 英语网站排名网站开发代码实例
  • 如何优化m网站福建设厅官方网站
  • 自己做提卡网站找人做网站一般要多少钱
  • 廊坊企业免费建站pacdora 设计网
  • 贵阳论坛网站建设怎样建立网站建设
  • 做零售去哪个外贸网站近期十大热点新闻
  • 提供常州网站建设公司有域名了怎么建设网站
  • 宁波专业建网站外包深圳网站制作公司兴田德润官方网站
  • 中国商标官方网站Wordpress修改主题默认头像
  • 网站建设提问网站后台怎么用ftp打开
  • 品牌做网站厦门建网站多少钱
  • 网站平台推广方案传统软件开发流程
  • 网站建设信息稿哪里有网站开发技术
  • Fastcgi做网站网站开发小程序开发
  • 台州快速建站公司wordpress多线程
  • 陕西有色建设有限公司网站百度竞价软件哪个好
  • 厦门市湖里区建设局网站免费网站备案号码
  • 行政审批局政务服务网站建设情况公司怎么申请企业邮箱
  • 凡科手机网站设置问题策划公司有哪些