电子相册的制作方法

 

用一个页面GetThumbnail.aspx制作缩略图,用一个页面ListImage.aspx使用datalist控件的项模板中的hyperlink控件的NavigateUrl属性设置原始图的导航,ImageUrl属性设置为缩略图,ToolTip属性设置提示文字。

缩略图页面GetThumbnail.aspx的代码:

const int MaxLength=150;  //最大长度

        private void Page_Load(object sender, System.EventArgs e)

        {

            if (Request.QueryString["filename"] != null)

            {

                //取得原图

                string filename=Request.QueryString["filename"];

                Bitmap bmpOld= new Bitmap(Server.MapPath("images/" + filename));

 

                //计算缩小比例

                double d1;

                if (bmpOld.Height>bmpOld.Width)

                    d1=(double)(MaxLength/(double)bmpOld.Width);

                else

                    d1=(double)(MaxLength/(double)bmpOld.Height);

 

                //产生缩图

                Bitmap bmpThumb= new Bitmap(bmpOld,(int)(bmpOld.Width*d1),(int)(bmpOld.Height*d1));

 

                // 清除缓冲

                Response.Clear();

                //生成图片

                bmpThumb.Save(Response.OutputStream, ImageFormat.Jpeg);

                Response.End();

                //释放资源

                bmpThumb.Dispose();

                bmpOld.Dispose();

            }

        }

展示图片页面ListImage.aspx中的部分代码:

页面部分:

<ItemTemplate>

    <asp:HyperLink id=HyperLink1 Target="_blank" NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.filename", "images/{0}") %>' Runat="server" ImageUrl='<%# DataBinder.Eval(Container, "DataItem.filename", "GetThumbnail.aspx?filename={0}") %>' ToolTip='<%# DataBinder.Eval(Container, "DataItem.filename", "文件名称:{0}")+DataBinder.Eval(Container, "DataItem.size", "\n文件尺寸:{0}") %>'>

                            </asp:HyperLink>

                            <asp:Button id="Button1" onclick="HHH" runat="server" Text="Button"></asp:Button>

                        </ItemTemplate>

代码部分:

private void Page_Load(object sender, System.EventArgs e)

        {

            if (!IsPostBack)

            {

                //获取文件名称

                string[] files=Directory.GetFiles(Server.MapPath("images"));

                //建立数据表

                DataTable dt=new DataTable();

                dt.Columns.Add("filename");

                dt.Columns.Add("size");

                foreach (string s in files)

                {

                    DataRow dr=dt.NewRow();

                    FileInfo f=new FileInfo(s);

                    dr["filename"]=f.Name;

                    dr["size"]=f.Length;

                    dt.Rows.Add(dr);

                }

                //绑定显示

                this.DataList1.DataSource=dt;

                this.DataList1.DataBind();

            }

        }

posted @ 2005-06-11 14:01  虚空境界  Views(2902)  Comments(0Edit  收藏  举报