在一段文本中含有图片的地址,例如:<IMG height=339 src="/ImgNewsup/20080603122251037.jpg" width=500 border=0>
6月3日,湖南岳阳楼,中国杂交水稻之父袁隆平作为火炬手,传递奥运圣火湖南第一棒火炬。中新社发 廖攀 摄
中新网6月3日电北京时间今天上午10时50分许,随着当天第168棒火炬手跑到南湖广场,奥运圣火岳阳站传递结束。
今天的起跑仪式在8时30分开始,全体人员首先为四川大地震中的遇难同胞默哀。当地领导致辞过后,数百名学子齐声朗诵千古名篇《岳阳楼记》,表达了湖南人民与灾区同胞心连心的感情。
8时45分许,著名的“杂交水稻之父”袁隆平跑出第一棒,排在第二个的是羽毛球世界冠军龚智超。圣火经过美丽的洞庭沿湖风光带,以及代表岳阳现代风貌的多处建筑,最后抵达南湖广场。
在岳阳站的168名火炬手中,既有袁隆平这样的科学家,也有世界冠军龚智超、凌洁等人,还有因“超级女声”成名的歌手李宇春等。我把其中的图片的地址取出来,然后根据地址把图片找出来。由于图片是大图,现在需要对其进行处理,将500*400变成100*90,这种效果改怎么实现?注:我需要真正的把图片变小,而不是纯粹的指定其高度和宽度。

解决方案 »

  1.   

    图片的基类Image提供了很好的用的方法,Image.GetThumbnailImage method
      

  2.   

    呵呵,这个就多看看msdn吧。应该有的。
      

  3.   


    using System;
    using System.IO;
    using System.Drawing;
    using System.Drawing.Imaging;/// <summary>
    /// ImageThumbnail 的摘要说明
    /// </summary>
    public class ImageThumbnail
    {
        private Image ResImage;
        private string err;    public ImageThumbnail(string imageFilePath)
        {
            ResImage = Image.FromFile(imageFilePath);
        }    public bool ThumbnailCallback()
        {
            return false;
        }    /// <summary>
        /// 按大小缩放
        /// </summary>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <param name="targetFilePath"></param>
        /// <param name="format"></param>
        /// <returns></returns>
        public bool ReducedImage(int width, int height, string targetFilePath, ImageFormat format)
        {
            try
            {
                if (ResImage.Width < 150 && ResImage.Height < 190)
                {
                    ResImage.Dispose();
                    return false;
                }
                Image reducedImage;
                Image.GetThumbnailImageAbort gtImg = new Image.GetThumbnailImageAbort(ThumbnailCallback);
                reducedImage = ResImage.GetThumbnailImage(width, height, gtImg, IntPtr.Zero);
                reducedImage.Save(targetFilePath, format);
                reducedImage.Dispose();
                ResImage.Dispose();
                return true;
            }
            catch (Exception exec)
            {
                err = exec.Message;
                return false;
            }
        }    /// <summary>
        /// 按比例缩放图片
        /// </summary>
        /// <param name="pre">百分比</param>
        /// <param name="targetFilePath">存放位置</param>
        /// <returns></returns>
        public bool ReducedImage(decimal pre, string targetFilePath, string type)
        {
            try
            {
                int width;
                int height;            Image reducedImage;
                Image.GetThumbnailImageAbort gtImg = new Image.GetThumbnailImageAbort(ThumbnailCallback);
                width = Convert.ToInt32(ResImage.Width * pre);
                height = Convert.ToInt32(ResImage.Height * width / ResImage.Width);
                reducedImage = ResImage.GetThumbnailImage(width, height, gtImg, IntPtr.Zero);            if (type == "jpg")
                {
                    reducedImage.Save(targetFilePath, ImageFormat.Jpeg);
                }
                else if (type == "gif")
                {
                    reducedImage.Save(targetFilePath, ImageFormat.Gif);
                }
                reducedImage.Dispose();
                return true;
            }
            catch (Exception exec)
            {
                err = exec.Message;
                return false;
            }
        }
    }