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

广州红鼎网站建设有限公司怎么样wordpress升级数据库

广州红鼎网站建设有限公司怎么样,wordpress升级数据库,做百度推广代运营有用吗,上海百度网站建设前言 需求源自项目中的一些应用#xff0c;比如相册功能#xff0c;通常用户上传相片后我们都会针对该相片再生成一张缩略图#xff0c;用于其它页面上的列表显示。随便看一下#xff0c;大部分网站基本都是将原图等比缩放来生成缩略图。但完美主义者会发现一些问题#…前言 需求源自项目中的一些应用比如相册功能通常用户上传相片后我们都会针对该相片再生成一张缩略图用于其它页面上的列表显示。随便看一下大部分网站基本都是将原图等比缩放来生成缩略图。但完美主义者会发现一些问题比如显示排版时想让相片缩略图列表非常统一、整齐、和美观比如要求每张缩略图大小固定为120 x 90且不拉伸变形怎么办再比如用户头像如何让缩略图比原图更清晰或是如何在上传的图片下加一个半透明的LOGO水印 OK本文根据自己的项目代码描述以上问题的解决方案全部基于.Net Framework类库完成代码中包含了C#图片处理的一些基础知识与大家分享个人能力有限不足之处还请及时指正。 提高缩略图清晰度 (原图200*200,12.3k)(处理后80*80,17.7k) 之前一直认为缩略图不可能比原图清晰直到某天一位产品的同事给我看某网站的效果。于是开始寻找.NET下实现代码仔细观察缩略图确实比原图更清晰了一些但代价是缩略图文件比原图更大所以如果你想让一张占满显示器屏幕的超大图片更清晰那么图片占用空间和网络流量就必需考虑了如果是互联网应用建议缩略图在200像素以内的使用该方法。当然如果哪位有更好的代码即能让图片文件大小变化不大又让图片更清晰还请分享。 图片裁剪 (原图256*192)(裁剪要求100*100) (原图256*192)(裁剪要求90*120) (原图256*192)(裁剪要求120*90) (原图146*256) (裁剪要求100*100)(原图146*256)(裁剪要求90*120) (原图146*256)(裁剪要求120*90) 算法以原图中心作为裁剪中心最大范围的对原图进行裁剪然后对裁剪结果等比缩放。 图片水印 仅演示了效果如需要变更字体、水印透明度、位置等可自行在代码或方法中扩展。 代码 封装了几个通用的方法如发现有BUG或漏洞还请及时指正。 using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; namespace WuJian.Common { /// summary /// 图片处理类 /// 吴剑 2008-07-02 创建 /// 吴剑 2011-01-21 修改 /// /summary public class PTImage { #region 正方型裁剪并缩放 /// summary /// 正方型裁剪 /// 以图片中心为轴心截取正方型然后等比缩放 /// 用于头像处理 /// /summary /// remarks吴剑 2010-11-23/remarks /// param namepostedFile原图HttpPostedFile对象/param /// param namefileSaveUrl缩略图存放地址/param /// param nameside指定的边长正方型/param /// param namequality质量范围0-100/param public static void CutForSquare(System.Web.HttpPostedFile postedFile, string fileSaveUrl, int side, int quality) { //创建目录 string dir Path.GetDirectoryName(fileSaveUrl); if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); //原始图片获取原始图片创建对象并使用流中嵌入的颜色管理信息 System.Drawing.Image initImage System.Drawing.Image.FromStream(postedFile.InputStream, true); //原图宽高均小于模版不作处理直接保存 if (initImage.Width side initImage.Height side) { initImage.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg); } else { //原始图片的宽、高 int initWidth initImage.Width; int initHeight initImage.Height; //非正方型先裁剪为正方型 if (initWidth ! initHeight) { //截图对象 System.Drawing.Image pickedImage null; System.Drawing.Graphics pickedG null; //宽大于高的横图 if (initWidth initHeight) { //对象实例化 pickedImage new System.Drawing.Bitmap(initHeight, initHeight); pickedG System.Drawing.Graphics.FromImage(pickedImage); //设置质量 pickedG.InterpolationMode System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; pickedG.SmoothingMode System.Drawing.Drawing2D.SmoothingMode.HighQuality; //定位 Rectangle fromR new Rectangle((initWidth - initHeight) / 2, 0, initHeight, initHeight); Rectangle toR new Rectangle(0, 0, initHeight, initHeight); //画图 pickedG.DrawImage(initImage, toR, fromR, System.Drawing.GraphicsUnit.Pixel); //重置宽 initWidth initHeight; } //高大于宽的竖图 else { //对象实例化 pickedImage new System.Drawing.Bitmap(initWidth, initWidth); pickedG System.Drawing.Graphics.FromImage(pickedImage); //设置质量 pickedG.InterpolationMode System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; pickedG.SmoothingMode System.Drawing.Drawing2D.SmoothingMode.HighQuality; //定位 Rectangle fromR new Rectangle(0, (initHeight - initWidth) / 2, initWidth, initWidth); Rectangle toR new Rectangle(0, 0, initWidth, initWidth); //画图 pickedG.DrawImage(initImage, toR, fromR, System.Drawing.GraphicsUnit.Pixel); //重置高 initHeight initWidth; } //将截图对象赋给原图 initImage (System.Drawing.Image)pickedImage.Clone(); //释放截图资源 pickedG.Dispose(); pickedImage.Dispose(); } //缩略图对象 System.Drawing.Image resultImage new System.Drawing.Bitmap(side, side); System.Drawing.Graphics resultG System.Drawing.Graphics.FromImage(resultImage); //设置质量 resultG.InterpolationMode System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; resultG.SmoothingMode System.Drawing.Drawing2D.SmoothingMode.HighQuality; //用指定背景色清空画布 resultG.Clear(Color.White); //绘制缩略图 resultG.DrawImage(initImage, new System.Drawing.Rectangle(0, 0, side, side), new System.Drawing.Rectangle(0, 0, initWidth, initHeight), System.Drawing.GraphicsUnit.Pixel); //关键质量控制 //获取系统编码类型数组,包含了jpeg,bmp,png,gif,tiff ImageCodecInfo[] icis ImageCodecInfo.GetImageEncoders(); ImageCodecInfo ici null; foreach (ImageCodecInfo i in icis) { if (i.MimeType image/jpeg || i.MimeType image/bmp || i.MimeType image/png || i.MimeType image/gif) { ici i; } } EncoderParameters ep new EncoderParameters(1); ep.Param[0] new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)quality); //保存缩略图 resultImage.Save(fileSaveUrl, ici, ep); //释放关键质量控制所用资源 ep.Dispose(); //释放缩略图资源 resultG.Dispose(); resultImage.Dispose(); //释放原始图片资源 initImage.Dispose(); } } /// summary /// 正方型裁剪 /// 以图片中心为轴心截取正方型然后等比缩放 /// 用于头像处理 /// /summary /// remarks吴剑 2010-11-23/remarks /// param namepostedFile原图HttpPostedFile对象/param /// param namefileSaveUrl缩略图存放地址/param /// param nameside指定的边长正方型/param /// param namequality质量范围0-100/param public static void CutForSquare(System.IO.Stream fromFile, string fileSaveUrl, int side, int quality) { //创建目录 string dir Path.GetDirectoryName(fileSaveUrl); if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); //原始图片获取原始图片创建对象并使用流中嵌入的颜色管理信息 System.Drawing.Image initImage System.Drawing.Image.FromStream(fromFile, true); //原图宽高均小于模版不作处理直接保存 if (initImage.Width side initImage.Height side) { initImage.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg); } else { //原始图片的宽、高 int initWidth initImage.Width; int initHeight initImage.Height; //非正方型先裁剪为正方型 if (initWidth ! initHeight) { //截图对象 System.Drawing.Image pickedImage null; System.Drawing.Graphics pickedG null; //宽大于高的横图 if (initWidth initHeight) { //对象实例化 pickedImage new System.Drawing.Bitmap(initHeight, initHeight); pickedG System.Drawing.Graphics.FromImage(pickedImage); //设置质量 pickedG.InterpolationMode System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; pickedG.SmoothingMode System.Drawing.Drawing2D.SmoothingMode.HighQuality; //定位 Rectangle fromR new Rectangle((initWidth - initHeight) / 2, 0, initHeight, initHeight); Rectangle toR new Rectangle(0, 0, initHeight, initHeight); //画图 pickedG.DrawImage(initImage, toR, fromR, System.Drawing.GraphicsUnit.Pixel); //重置宽 initWidth initHeight; } //高大于宽的竖图 else { //对象实例化 pickedImage new System.Drawing.Bitmap(initWidth, initWidth); pickedG System.Drawing.Graphics.FromImage(pickedImage); //设置质量 pickedG.InterpolationMode System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; pickedG.SmoothingMode System.Drawing.Drawing2D.SmoothingMode.HighQuality; //定位 Rectangle fromR new Rectangle(0, (initHeight - initWidth) / 2, initWidth, initWidth); Rectangle toR new Rectangle(0, 0, initWidth, initWidth); //画图 pickedG.DrawImage(initImage, toR, fromR, System.Drawing.GraphicsUnit.Pixel); //重置高 initHeight initWidth; } //将截图对象赋给原图 initImage (System.Drawing.Image)pickedImage.Clone(); //释放截图资源 pickedG.Dispose(); pickedImage.Dispose(); } //缩略图对象 System.Drawing.Image resultImage new System.Drawing.Bitmap(side, side); System.Drawing.Graphics resultG System.Drawing.Graphics.FromImage(resultImage); //设置质量 resultG.InterpolationMode System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; resultG.SmoothingMode System.Drawing.Drawing2D.SmoothingMode.HighQuality; //用指定背景色清空画布 resultG.Clear(Color.White); //绘制缩略图 resultG.DrawImage(initImage, new System.Drawing.Rectangle(0, 0, side, side), new System.Drawing.Rectangle(0, 0, initWidth, initHeight), System.Drawing.GraphicsUnit.Pixel); //关键质量控制 //获取系统编码类型数组,包含了jpeg,bmp,png,gif,tiff ImageCodecInfo[] icis ImageCodecInfo.GetImageEncoders(); ImageCodecInfo ici null; foreach (ImageCodecInfo i in icis) { if (i.MimeType image/jpeg || i.MimeType image/bmp || i.MimeType image/png || i.MimeType image/gif) { ici i; } } EncoderParameters ep new EncoderParameters(1); ep.Param[0] new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)quality); //保存缩略图 resultImage.Save(fileSaveUrl, ici, ep); //释放关键质量控制所用资源 ep.Dispose(); //释放缩略图资源 resultG.Dispose(); resultImage.Dispose(); //释放原始图片资源 initImage.Dispose(); } } #endregion #region 固定模版裁剪并缩放 /// summary /// 指定长宽裁剪 /// 按模版比例最大范围的裁剪图片并缩放至模版尺寸 /// /summary /// remarks吴剑 2010-11-15/remarks /// param namepostedFile原图HttpPostedFile对象/param /// param namefileSaveUrl保存路径/param /// param namemaxWidth最大宽(单位:px)/param /// param namemaxHeight最大高(单位:px)/param /// param namequality质量范围0-100/param public static void CutForCustom(System.Web.HttpPostedFile postedFile, string fileSaveUrl, int maxWidth, int maxHeight, int quality) { //从文件获取原始图片并使用流中嵌入的颜色管理信息 System.Drawing.Image initImage System.Drawing.Image.FromStream(postedFile.InputStream, true); //原图宽高均小于模版不作处理直接保存 if (initImage.Width maxWidth initImage.Height maxHeight) { initImage.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg); } else { //模版的宽高比例 double templateRate (double)maxWidth / maxHeight; //原图片的宽高比例 double initRate (double)initImage.Width / initImage.Height; //原图与模版比例相等直接缩放 if (templateRate initRate) { //按模版大小生成最终图片 System.Drawing.Image templateImage new System.Drawing.Bitmap(maxWidth, maxHeight); System.Drawing.Graphics templateG System.Drawing.Graphics.FromImage(templateImage); templateG.InterpolationMode System.Drawing.Drawing2D.InterpolationMode.High; templateG.SmoothingMode System.Drawing.Drawing2D.SmoothingMode.HighQuality; templateG.Clear(Color.White); templateG.DrawImage(initImage, new System.Drawing.Rectangle(0, 0, maxWidth, maxHeight), new System.Drawing.Rectangle(0, 0, initImage.Width, initImage.Height), System.Drawing.GraphicsUnit.Pixel); templateImage.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg); } //原图与模版比例不等裁剪后缩放 else { //裁剪对象 System.Drawing.Image pickedImage null; System.Drawing.Graphics pickedG null; //定位 Rectangle fromR new Rectangle(0, 0, 0, 0);//原图裁剪定位 Rectangle toR new Rectangle(0, 0, 0, 0);//目标定位 //宽为标准进行裁剪 if (templateRate initRate) { //裁剪对象实例化 pickedImage new System.Drawing.Bitmap(initImage.Width, (int)Math.Floor(initImage.Width / templateRate)); pickedG System.Drawing.Graphics.FromImage(pickedImage); //裁剪源定位 fromR.X 0; fromR.Y (int)Math.Floor((initImage.Height - initImage.Width / templateRate) / 2); fromR.Width initImage.Width; fromR.Height (int)Math.Floor(initImage.Width / templateRate); //裁剪目标定位 toR.X 0; toR.Y 0; toR.Width initImage.Width; toR.Height (int)Math.Floor(initImage.Width / templateRate); } //高为标准进行裁剪 else { pickedImage new System.Drawing.Bitmap((int)Math.Floor(initImage.Height * templateRate), initImage.Height); pickedG System.Drawing.Graphics.FromImage(pickedImage); fromR.X (int)Math.Floor((initImage.Width - initImage.Height * templateRate) / 2); fromR.Y 0; fromR.Width (int)Math.Floor(initImage.Height * templateRate); fromR.Height initImage.Height; toR.X 0; toR.Y 0; toR.Width (int)Math.Floor(initImage.Height * templateRate); toR.Height initImage.Height; } //设置质量 pickedG.InterpolationMode System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; pickedG.SmoothingMode System.Drawing.Drawing2D.SmoothingMode.HighQuality; //裁剪 pickedG.DrawImage(initImage, toR, fromR, System.Drawing.GraphicsUnit.Pixel); //按模版大小生成最终图片 System.Drawing.Image templateImage new System.Drawing.Bitmap(maxWidth, maxHeight); System.Drawing.Graphics templateG System.Drawing.Graphics.FromImage(templateImage); templateG.InterpolationMode System.Drawing.Drawing2D.InterpolationMode.High; templateG.SmoothingMode System.Drawing.Drawing2D.SmoothingMode.HighQuality; templateG.Clear(Color.White); templateG.DrawImage(pickedImage, new System.Drawing.Rectangle(0, 0, maxWidth, maxHeight), new System.Drawing.Rectangle(0, 0, pickedImage.Width, pickedImage.Height), System.Drawing.GraphicsUnit.Pixel); //关键质量控制 //获取系统编码类型数组,包含了jpeg,bmp,png,gif,tiff ImageCodecInfo[] icis ImageCodecInfo.GetImageEncoders(); ImageCodecInfo ici null; foreach (ImageCodecInfo i in icis) { if (i.MimeType image/jpeg || i.MimeType image/bmp || i.MimeType image/png || i.MimeType image/gif) { ici i; } } EncoderParameters ep new EncoderParameters(1); ep.Param[0] new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)quality); //保存缩略图 templateImage.Save(fileSaveUrl, ici, ep); //templateImage.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg); //释放资源 templateG.Dispose(); templateImage.Dispose(); pickedG.Dispose(); pickedImage.Dispose(); } } //释放资源 initImage.Dispose(); } #endregion #region 等比缩放 /// summary /// 图片等比缩放 /// /summary /// remarks吴剑 2011-01-21/remarks /// param namepostedFile原图HttpPostedFile对象/param /// param namesavePath缩略图存放地址/param /// param nametargetWidth指定的最大宽度/param /// param nametargetHeight指定的最大高度/param /// param namewatermarkText水印文字(为表示不使用水印)/param /// param namewatermarkImage水印图片路径(为表示不使用水印)/param public static void ZoomAuto(System.Web.HttpPostedFile postedFile, string savePath, System.Double targetWidth, System.Double targetHeight, string watermarkText, string watermarkImage) { //创建目录 string dir Path.GetDirectoryName(savePath); if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); //原始图片获取原始图片创建对象并使用流中嵌入的颜色管理信息 System.Drawing.Image initImage System.Drawing.Image.FromStream(postedFile.InputStream, true); //原图宽高均小于模版不作处理直接保存 if (initImage.Width targetWidth initImage.Height targetHeight) { //文字水印 if (watermarkText ! ) { using (System.Drawing.Graphics gWater System.Drawing.Graphics.FromImage(initImage)) { System.Drawing.Font fontWater new Font(黑体, 10); System.Drawing.Brush brushWater new SolidBrush(Color.White); gWater.DrawString(watermarkText, fontWater, brushWater, 10, 10); gWater.Dispose(); } } //透明图片水印 if (watermarkImage ! ) { if (File.Exists(watermarkImage)) { //获取水印图片 using (System.Drawing.Image wrImage System.Drawing.Image.FromFile(watermarkImage)) { //水印绘制条件原始图片宽高均大于或等于水印图片 if (initImage.Width wrImage.Width initImage.Height wrImage.Height) { Graphics gWater Graphics.FromImage(initImage); //透明属性 ImageAttributes imgAttributes new ImageAttributes(); ColorMap colorMap new ColorMap(); colorMap.OldColor Color.FromArgb(255, 0, 255, 0); colorMap.NewColor Color.FromArgb(0, 0, 0, 0); ColorMap[] remapTable { colorMap }; imgAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap); float[][] colorMatrixElements { new float[] {1.0f, 0.0f, 0.0f, 0.0f, 0.0f}, new float[] {0.0f, 1.0f, 0.0f, 0.0f, 0.0f}, new float[] {0.0f, 0.0f, 1.0f, 0.0f, 0.0f}, new float[] {0.0f, 0.0f, 0.0f, 0.5f, 0.0f},//透明度:0.5 new float[] {0.0f, 0.0f, 0.0f, 0.0f, 1.0f} }; ColorMatrix wmColorMatrix new ColorMatrix(colorMatrixElements); imgAttributes.SetColorMatrix(wmColorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); gWater.DrawImage(wrImage, new Rectangle(initImage.Width - wrImage.Width, initImage.Height - wrImage.Height, wrImage.Width, wrImage.Height), 0, 0, wrImage.Width, wrImage.Height, GraphicsUnit.Pixel, imgAttributes); gWater.Dispose(); } wrImage.Dispose(); } } } //保存 initImage.Save(savePath, System.Drawing.Imaging.ImageFormat.Jpeg); } else { //缩略图宽、高计算 double newWidth initImage.Width; double newHeight initImage.Height; //宽大于高或宽等于高横图或正方 if (initImage.Width initImage.Height || initImage.Width initImage.Height) { //如果宽大于模版 if (initImage.Width targetWidth) { //宽按模版高按比例缩放 newWidth targetWidth; newHeight initImage.Height * (targetWidth / initImage.Width); } } //高大于宽竖图 else { //如果高大于模版 if (initImage.Height targetHeight) { //高按模版宽按比例缩放 newHeight targetHeight; newWidth initImage.Width * (targetHeight / initImage.Height); } } //生成新图 //新建一个bmp图片 System.Drawing.Image newImage new System.Drawing.Bitmap((int)newWidth, (int)newHeight); //新建一个画板 System.Drawing.Graphics newG System.Drawing.Graphics.FromImage(newImage); //设置质量 newG.InterpolationMode System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; newG.SmoothingMode System.Drawing.Drawing2D.SmoothingMode.HighQuality; //置背景色 newG.Clear(Color.White); //画图 newG.DrawImage(initImage, new System.Drawing.Rectangle(0, 0, newImage.Width, newImage.Height), new System.Drawing.Rectangle(0, 0, initImage.Width, initImage.Height), System.Drawing.GraphicsUnit.Pixel); //文字水印 if (watermarkText ! ) { using (System.Drawing.Graphics gWater System.Drawing.Graphics.FromImage(newImage)) { System.Drawing.Font fontWater new Font(宋体, 10); System.Drawing.Brush brushWater new SolidBrush(Color.White); gWater.DrawString(watermarkText, fontWater, brushWater, 10, 10); gWater.Dispose(); } } //透明图片水印 if (watermarkImage ! ) { if (File.Exists(watermarkImage)) { //获取水印图片 using (System.Drawing.Image wrImage System.Drawing.Image.FromFile(watermarkImage)) { //水印绘制条件原始图片宽高均大于或等于水印图片 if (newImage.Width wrImage.Width newImage.Height wrImage.Height) { Graphics gWater Graphics.FromImage(newImage); //透明属性 ImageAttributes imgAttributes new ImageAttributes(); ColorMap colorMap new ColorMap(); colorMap.OldColor Color.FromArgb(255, 0, 255, 0); colorMap.NewColor Color.FromArgb(0, 0, 0, 0); ColorMap[] remapTable { colorMap }; imgAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap); float[][] colorMatrixElements { new float[] {1.0f, 0.0f, 0.0f, 0.0f, 0.0f}, new float[] {0.0f, 1.0f, 0.0f, 0.0f, 0.0f}, new float[] {0.0f, 0.0f, 1.0f, 0.0f, 0.0f}, new float[] {0.0f, 0.0f, 0.0f, 0.5f, 0.0f},//透明度:0.5 new float[] {0.0f, 0.0f, 0.0f, 0.0f, 1.0f} }; ColorMatrix wmColorMatrix new ColorMatrix(colorMatrixElements); imgAttributes.SetColorMatrix(wmColorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); gWater.DrawImage(wrImage, new Rectangle(newImage.Width - wrImage.Width, newImage.Height - wrImage.Height, wrImage.Width, wrImage.Height), 0, 0, wrImage.Width, wrImage.Height, GraphicsUnit.Pixel, imgAttributes); gWater.Dispose(); } wrImage.Dispose(); } } } //保存缩略图 newImage.Save(savePath, System.Drawing.Imaging.ImageFormat.Jpeg); //释放资源 newG.Dispose(); newImage.Dispose(); initImage.Dispose(); } } #endregion #region 其它 /// summary /// 判断文件类型是否为WEB格式图片 /// (注JPG,GIF,BMP,PNG) /// /summary /// param namecontentTypeHttpPostedFile.ContentType/param /// returns/returns public static bool IsWebImage(string contentType) { if (contentType image/pjpeg || contentType image/jpeg || contentType image/gif || contentType image/bmp || contentType image/png) { return true; } else { return false; } } #endregion }//end class }
http://www.sadfv.cn/news/217120/

相关文章:

  • 龙口建网站价格重庆建设集团公司
  • 建设银行网站 查余额建设网站工作报告
  • 南京网站设计机构wordpress手机主题mip
  • 宜宾市网站建设微信分销网站建设
  • 国内专门做旅游攻略的网站网站地图怎么做XML
  • 绍兴网站制作青海省建设厅建管处网站
  • 做MAD生肉网站百度sem优化师
  • 搜狐快速建站什么专业是做网站
  • 青云谱网站建设昆明软件开发公司有哪些
  • 璧山网站建设网店推广有哪些方法
  • 建设创意网站做磨毛布内销哪个网站比较好
  • 网站搭建网天河建设网站专家
  • 网站设计用什么字体好南昌地宝网二手车
  • 西安网站优化培训海阳市城建设局网站
  • asp网站发布ftpwordpress手机菜单
  • 做网站的框架网站栏目怎么做301定向
  • 做的网站怎么发布到网上百度云建站网站建设
  • 河南网站建设企业wordpress商城主题破解
  • 杭州网站建设公司联系方式网站设计与网页制作在线
  • 资金盘网站开发多少钱发布一个app要多少钱
  • 贵阳网站建设制作价格现在做个企业网站一般多少钱
  • 冯提莫斗鱼前在哪个网站做直播杭州软件开发公司
  • 茶叶企业网站开发源码家政网站建设方案分析
  • 成都鸿邑网站建设高端手机排行榜2023
  • 建设银行防钓鱼网站重庆腊肠制作
  • 计算机网站开发方向网站添加wordpress
  • 南京网站建设流程php网站开发事例
  • 免费h5旅游网站模板网站重新备案 需要关闭网站么
  • 广州建设企业网站公司广州网站设计哪里找
  • 网站建设如何站内搜索商务网站建设课程