我本地客户端有一张图片c:\zp.jpg,现在我在服务器后台代码想直接读取该图片,如何获取图片内容并转换成System.Drawing.Image类型?
注意:没有上传控件,没有页面,只有cs文件 希望大家帮忙 急啊 在线等

解决方案 »

  1.   


    private static byte[] ResizeImageFile(byte[] imageFile, int targetSize) {
    using (System.Drawing.Image oldImage = System.Drawing.Image.FromStream(new MemoryStream(imageFile))) {
    Size newSize = CalculateDimensions(oldImage.Size, targetSize);
    using (Bitmap newImage = new Bitmap(newSize.Width, newSize.Height, PixelFormat.Format24bppRgb)) {
    using (Graphics canvas = Graphics.FromImage(newImage)) {
    canvas.SmoothingMode = SmoothingMode.AntiAlias;
    canvas.InterpolationMode = InterpolationMode.HighQualityBicubic;
    canvas.PixelOffsetMode = PixelOffsetMode.HighQuality;
    canvas.DrawImage(oldImage, new Rectangle(new Point(0, 0), newSize));
    MemoryStream m = new MemoryStream();
    newImage.Save(m, ImageFormat.Jpeg);
    return m.GetBuffer();
    }
    }
    }
    }
      

  2.   

    没有上传控件,没有页面??
    ===============》
    图片在客户端,不上传到服务器端你怎么可能读取?不可能从服务器端如探囊取物一般直接想抓客户端哪个文件就抓那个,如果要这样,你得做个activex控件或者客户端程序还差不多。
      

  3.   

    代码的作用是,根据路径把图片读取,转化为流,存储。在把存储读取,转化为流,转化为图片输出。
    而你要做的是,直接把流转化为图片,输出。    protected void Button2_Click(object sender, EventArgs e)
        {
            string xmlPath = @"D:\tuXml.xml";        XmlWriter xml = XmlWriter.Create(xmlPath);        xml.WriteStartDocument(false);
            xml.WriteStartElement("tu");
            xml.WriteAttributeString("id", "1");        xml.WriteStartElement("image");
            xml.WriteAttributeString("fileName", Page.Server.MapPath("123.JPG"));        FileInfo inf = new FileInfo(Page.Server.MapPath("123.JPG"));
            int size = (int)inf.Length;        byte[] imgByte = new byte[size];
            FileStream fs = new FileStream(Page.Server.MapPath("123.JPG"), FileMode.Open);        BinaryReader reader = new BinaryReader(fs);
            imgByte = reader.ReadBytes(size);        reader.Close();        xml.WriteString(Convert.ToBase64String(imgByte));        xml.WriteEndElement();
            xml.WriteEndElement();
            xml.WriteEndDocument();        xml.Flush();
        }    //对应格式的读写操作。
        protected void Button3_Click(object sender, EventArgs e)
        {
            XmlReader xml = XmlReader.Create(@"D:\tuXml.xml");        XmlTextReader ds = XmlTextReader.Create(@"D:\tuXml.xml");        while (xml.Read())
            {
                if (xml.NodeType == XmlNodeType.Element)
                {
                    if (xml.Name == "image")
                    {
                        if (xml.AttributeCount == 0)
                        {
                            break;
                        }                    string str = xml.GetAttribute(0);                    string str1 = xml.ReadElementString();                    ///打开现有文件以进行读取。
                        byte[] imgBytes = Convert.FromBase64String(str1);                    //转换为支持存储区为内存的流
                        System.IO.MemoryStream memStream = new System.IO.MemoryStream(imgBytes);
                        System.Drawing.Image returnImage = System.Drawing.Image.FromStream(memStream);                    ///////定义并实例化Bitmap对象
                        Bitmap bm = new Bitmap(memStream);
                        ///////根据不同的条件进行输出或者下载;
                        Response.Clear();
                        returnImage.Save(Response.OutputStream, ImageFormat.Jpeg);
                        bm.Save(Response.OutputStream, ImageFormat.Jpeg);   
                    }
                }
            }
        }
      

  4.   

    要用cs来操作本地的图片,不太可能,只有上传到服务器以后才可以读取。
    你可以用js来查看本地的图片。
      

  5.   

    没有上传控件,没有页面,只有cs文件
    那是什么情况?
    如果你想通过服务端来对比图片的可上传性的话,
    过程是重绘了一张IMAGE,然后来进行对比
    但你这情况好象不太正常
    可以用js在客户端来对比