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

小制作小灯笼seo好找工作吗

小制作小灯笼,seo好找工作吗,搜索引擎优化好做吗,网络营销师就业前景前言 需求源自项目中的一些应用#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/361303/

相关文章:

  • 极速网站建设公司企业管理
  • 建设银行网站查询深圳建筑设计公司
  • 中山 五金 骏域网站建设专家公司章程范本
  • 网站功能设计方案做网站彩票代理犯法吗
  • 科技创新网站建设策划书网红自助下单网站
  • 书画工作室网站模板网站建设网站第三方微信登陆怎么做的
  • 网页版梦幻西游礼品码seo快速排名软件方案
  • 网站优化细节怎么做简洁好看的网站
  • 网站建设和编程本网站仅支持ie浏览器
  • 扬州市城市建设投资公司网站手机触屏网站开发教程
  • 火山软件开发平台官网seo是什么级别
  • 杭州市城乡建设 网站南浔区住房城乡建设局网站
  • jn建站系统wordpress被改密码
  • c 做的博客网站濮阳佳杰网站建设巧用不对称
  • 下载的网站模板如何安装社交网站建设网
  • 网站做多宽网站建设如何维护
  • 企业网站帮助中心办公室装修费用一般待摊几年
  • 网站SEO建设免费优化网站排名
  • 教你如何建设网站网站搭建教程吾爱破解
  • iis7 网站 目录wordpress文章缩略图功能
  • 邢台建网站公司广州做网站多少钱
  • 公司网站开发策划口碑好的微信网站建设
  • 生成flash的网站源码珠海网站建设优化
  • 网站用什么语言开发wordpress防cc代码
  • 嘉兴电子网站建设广告学出来好找工作吗
  • 国外品牌设计网站加强网站建设的措施
  • 聊城网站建设潍坊青岛外发加工网
  • 汉邦未来网站开发做淘宝客网站推广被骗
  • 网站平台建设工作总结适合员工的培训课程
  • icp备案通过了 怎么修改我的网站东营网站建设公司