Uri图像绘制

时间:2012-06-08 02:04:12

标签: c# winforms

我想从uri中绘制项目,如:“http://profile/imgpath/0234245222.jpg”,但我得到了错误,uri不受支持。

我曾经把drawItem图像作为字节,我从不从uri中绘制。

请帮助我!

    private int mouseIndex = -1;

    private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
    {
        if (e.Index == -1) return;
        Image avatarContact = null;
        Mycontact contact = (Mycontact)listBox1.Items[e.Index];

        Brush textBrush = SystemBrushes.WindowText;
        if (e.Index > -1)
        {
            // Drawing the frame
            if (e.Index == mouseIndex)
            {
                e.Graphics.FillRectangle(SystemBrushes.HotTrack, e.Bounds);
                textBrush = SystemBrushes.HighlightText;
            }
            else
            {
                if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
                {
                    e.Graphics.FillRectangle(SystemBrushes.Highlight, e.Bounds);
                    textBrush = SystemBrushes.HighlightText;
                }else{
                    e.Graphics.FillRectangle(SystemBrushes.Window, e.Bounds);
                }
                // Drawing the Avatar Image
                if (contact.P_AVATAR_IMAGE != null)
                {
                    // displaying avatar picture
                    // if byte image
                    //MemoryStream stream = new MemoryStream(contact.P_AVATAR_IMAGE);
                    //avatarContact = Image.FromStream(stream );


                }
                else
                {
                    // if the contact has no avatar image, we can use a default one
                    if (contact.P_GENDER == "male") avatarContact = defaultMaleAvatar;
                    if (contact.P_GENDER == "female") avatarContact = defaultFemaleAvatar;
                }
                e.Graphics.DrawImage(avatarContact, e.Bounds.Left -2, e.Bounds.Top - 2, 50,40);

            }
        }
   }

1 个答案:

答案 0 :(得分:2)

看看这个MSDN Forum Thread,他们建议做这样的事情。

 Uri uri = new Uri("http://profile/imgpath/0234245222.jpg");
 WebRequest request = HttpWebRequest.Create(uri);
 WebResponse response = request.GetResponse();
 Stream stream = response.GetResponseStream();
 Image image = Image.FromStream(stream);