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

盐城seo网站优化/网络营销的应用

盐城seo网站优化,网络营销的应用,镇江政府网,做网站的广告词网站上可能会有很多图片,比如产品图片等,而且他们可能大小不一,宽度和高度也不一定一样,有的很大有的很小。如果放在一张网页上,可能会破坏版面,但是如果强制让他们按照指定的宽度和高度显示,因…

网站上可能会有很多图片,比如产品图片等,而且他们可能大小不一,宽度和高度也不一定一样,有的很大有的很小。如果放在一张网页上,可能会破坏版面,但是如果强制让他们按照指定的宽度和高度显示,因为比例不同还会出现变形,显示效果很糟糕,还有最大的缺点是,文件尺寸丝毫没有变化,当图片很大的时候,用户想要看到图片,必须经过漫长等待下载图片,怎么办呢?

好,这里设计到了缩略图,就像Windows中的缩略图查看一样,你所看到的是从原图按照1:1比例缩小的图片,而且满足规定在指定宽度和高度的范围内显示(如果图片填不满,就用空白)。缩略图不是原图,而是利用原图实时按照指定大小生成的,他的好处就是你可以充分控制缩略图的质量,宽度高度,文件大小也在合理的范围内,省去漫长等待。

本文将讨论如何生成缩略图,举一反三,又可以派生许多用处,比如,自己写一个验证码控件等。

1、理解对图片的请求和流
    一般来说,我们用http://xxx/a.aspx对a.aspx网页请求。ASP.NET处理了网页以后,就把该网页的内容发送回浏览器。a.aspx的内容一般是含有超文本标记的文本文件流,这是谁都不会怀疑的。但是a.aspx不但能够返回这种非常平常的网页文本外,把它广义开来,它其实可以放回任何类型的流数据。而,我们只需要对Response对象进行操作即可改变输出流的内容。
    把图像文件看作是一个二进制流,我们试图从一个图像文件创建了他的流对象,并且将流写入到Response.OutputStream中,这样图像文件就被发给了请求的浏览器。但是浏览器还必须要识别出这是一个图像文件,因此,在发送这个流之前,将Response.ContentType更改成这种图像文件的MIME类型。浏览器在收到这个流之后,调用相关的应用程序,图像就被显示在了浏览器上。虽然实际地址还是aspx结尾。
    这样我们就能很好理解怎么去向用户发送标记。例如,在一张普通的网页中写标记img标记,使他的src指向a.aspx。浏览器在得到这张网页后,会处理img标记的内容,并向a.aspx发出请求,这是a.aspx作为图像流返回,浏览器就将图片显示出来。

2、生成缩略图
    有了上述技术基础,我们可以建立这样一个空的aspx网页,他通过接受传入的参数,生成缩略图的流,发送回浏览器。
    我们创建一个名叫GetThumbnail.aspx的文件,内容如下:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="GetThumbnail.aspx.vb" Inherits="_51use.GetThumbnail"%>

这一句Page指令仅仅是告诉服务器,这个文件的隐藏类是_51use.GetThumbnail,而如果我们都不作任何操作的话,这个文件最终输出时空的。
接下来看一下他的隐藏类是如何写的,在这里我们使用的是B语言:

程序代码:


  1using System;
  2using System.Collections;
  3using System.ComponentModel;
  4using System.Data;
  5using System.Drawing;
  6using System.Drawing.Drawing2D;
  7using System.Drawing.Imaging;
  8using System.Web;
  9using System.Web.SessionState;
 10using System.Web.UI;
 11using System.Web.UI.WebControls;
 12using System.Web.UI.HtmlControls;
 13
 14namespace MeiYuan
 15{
 16    /// <summary>
 17    /// GetThumbnail 的摘要说明。
 18    /// </summary>

 19    public class GetThumbnail : System.Web.UI.Page
 20    {
 21        
 22        private void Page_Load(object sender, System.EventArgs e)
 23        {
 24            Response.Clear();
 25
 26            string originalFileName = Server.MapPath(Request.QueryString["fn"]);
 27            int thumbnailWidth = Convert.ToInt16(Request.QueryString["tw"]);
 28            int thumbnailHeight = Convert.ToInt16(Request.QueryString["th"]);
 29            string bgColorString = Convert.ToString(Request.QueryString["bg"]);
 30            
 31            ColorConverter cv = new ColorConverter();
 32            Color bgColor = (Color)cv.ConvertFromString("#"+bgColorString);
 33        
 34            System.Drawing.Image  img = System.Drawing.Image.FromFile(originalFileName);
 35
 36            System.Drawing.Imaging.ImageFormat thisFormat = img.RawFormat;
 37
 38            System.Drawing.Size newSize = this.GetNewSize(thumbnailWidth, thumbnailHeight, img.Width, img.Height);
 39
 40            System.Drawing.Bitmap outBmp = new Bitmap(thumbnailWidth, thumbnailHeight);
 41            
 42            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(outBmp);
 43            
 44            //设置画布的描绘质量
 45            g.CompositingQuality = CompositingQuality.HighQuality;
 46            g.SmoothingMode = SmoothingMode.HighQuality;
 47            g.InterpolationMode = InterpolationMode.HighQualityBicubic;
 48            //g.Clear(System.Drawing.Color.FromArgb(255, 249, 255, 240));
 49            g.Clear(bgColor);
 50            g.DrawImage(img, new Rectangle((thumbnailWidth - newSize.Width)/2,
 51                                           (thumbnailHeight - newSize.Height)/2,
 52                                           newSize.Width, newSize.Height),
 53                        00, img.Width, img.Height, GraphicsUnit.Pixel);
 54            g.Dispose();
 55            
 56            if(thisFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif))
 57            {
 58                Response.ContentType = "image/gif";
 59            }

 60            else
 61            {
 62                Response.ContentType = "image/jpeg";
 63            }

 64            
 65            
 66            //设置压缩质量
 67            System.Drawing.Imaging.EncoderParameters encoderParams = new EncoderParameters();
 68            
 69            System.Drawing.Imaging.EncoderParameter encoderParam =
 70                new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, new long[] {100});
 71             encoderParams.Param[0= encoderParam;
 72            
 73            
 74
 75            //获得包含有关内置图像编码解码器的信息的ImageCodecInfo 对象。
 76            System.Drawing.Imaging.ImageCodecInfo[] arrayICI = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();
 77            System.Drawing.Imaging.ImageCodecInfo jpegICI = null;
 78            
 79            for(int fwd = 0; fwd < arrayICI.Length; fwd++)
 80            {
 81                if(arrayICI[fwd].FormatDescription.Equals("JPEG"))
 82                {
 83                    jpegICI = arrayICI[fwd];
 84                    break;
 85                }

 86            }

 87            
 88            if(jpegICI == null)
 89            {
 90                outBmp.Save(Response.OutputStream, jpegICI, encoderParams);
 91            }

 92            else
 93            {
 94                outBmp.Save(Response.OutputStream, thisFormat);
 95            }

 96
 97           
 98
 99        }

100
101        #region Web 窗体设计器生成的代码
102        override protected void OnInit(EventArgs e)
103        {
104            //
105            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
106            //
107            InitializeComponent();
108            base.OnInit(e);
109        }

110        
111        /// <summary>
112        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
113        /// 此方法的内容。
114        /// </summary>

115        private void InitializeComponent()
116        {    
117            this.Load += new System.EventHandler(this.Page_Load);
118        }

119        #endregion

120        
121        System.Drawing.Size GetNewSize(int maxWidth, int maxHeight , int width , int height)
122        {
123            Double w = 0.0;
124            Double h = 0.0;
125            Double sw = Convert.ToDouble(width);
126            Double sh = Convert.ToDouble(height);
127            Double mw = Convert.ToDouble(maxWidth);
128            Double mh = Convert.ToDouble(maxHeight);
129            
130            if(sw < mw && sh < mh)
131            {
132                w = sw;
133                h = sh;
134            }

135            else if((sw / sh) > (mw / mh))
136            {
137                w = maxWidth;
138                h = (w*sh)/sw;
139            }

140            else
141            {
142                h = maxHeight;
143                w = (h*sw)/sh;
144            }

145            return new System.Drawing.Size(Convert.ToInt32(w), Convert.ToInt32(h));
146        }

147        
148        
149    }

150}

151


网页中使用方法


1<A href='ProductDetail.aspx?ProductID=<%# DataBinder.Eval(Container, "DataItem.ProductID")%>' target=_blank>
     <
IMG  height=80 src='GetThumbnail.aspx?fn=<%# Server.UrlEncode(DataBinder.Eval(Container, "DataItem.ImageUrl").ToString())%>&amp;tw=80&amp;th=80&amp;bg=FFF3F7' width=80 border=0>
     </
A>


 

 

http://www.jmfq.cn/news/4886371.html

相关文章:

  • 企业网站的建立必要性/百度在线人工客服
  • 商务网站制作工程师/长沙seo培训班
  • 在html中做网站 视频/百度浏览器app下载
  • 做资讯网站需要什么条件/域名备案
  • 信誉好的邯郸网站建设/搜索引擎推广一般包括哪些
  • 注册了网站怎么建设/浏览器里面信息是真是假
  • 微信网页开发教程/搜索引擎优化人员优化
  • 做网站推广都有哪些行业/seo研究中心怎么样
  • 坪山模板网站建设公司/线上宣传渠道
  • 申请网站服务器/全国推广优化网站
  • 工商网企业信息查询/长沙百度推广排名优化
  • 电子商务网站开发开发背景/seo外包公司专家
  • 西安公司注册网站/短链接购买
  • 什么网站可以做高三英语试题/爱网站关键词查询工具
  • 黑马/新乡百度关键词优化外包
  • 大庆网站开发/seo快速收录快速排名
  • 如何使用好单库选品库做网站/市场调研分析报告模板
  • 怎么做网站的域名解析/长春建站服务
  • 什么网站合适做流量/今天今日头条新闻
  • 有个网站做彩盒的/外贸接单网站
  • 教学互动网站开发背景/企业网站建设方案范文
  • 有保障的广州网站建设/茂名seo快速排名外包
  • wx网站开发/重庆seo优化推广
  • 昆明专业做网站多少钱/长沙百度关键词排名
  • 温州市网站制作多少钱/广告联盟官网入口
  • 提高网站排名怎么做/武汉百度开户代理
  • 做论坛网站怎么样备案/百度关键词推广网站
  • 如何创建网站系统教程/搜索引擎优化的技巧有哪些
  • 品牌网站建设小蝌蚪1/抖音怎么运营和引流
  • 高温热泵/枣庄网络推广seo