---
title: "Drawline/drawcirlce på bilder från SQL"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/159499-drawline-drawcirlce-på-bilder-från-sql"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "MrJansson"
published: "2007-04-21T10:45:50.000Z"
updated: "2007-04-23T15:40:38.000Z"
replies: 6
views: 453
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/159499-drawline-drawcirlce-på-bilder-från-sql"
---

# Drawline/drawcirlce på bilder från SQL

## #1 — MrJansson, 2007-04-21T10:45Z

Hej!

Jag behöver få hjälp med att manipulera bilder som ligger i min SQL-server innan jag publicerar dom. Just nu refererar jag till en aspx-sida

ImageMap1.ImageUrl = "\~/relationsbat/displayimage.aspx?id_images=1"

Vad jag vill göra är att på den bild som displayimage.aspx producerar rita diverse linjer och cirklar på genom att använda t.ex. drawline/drawellipse. 

Drawline/ellipse på en egen skapad bild i kod är enkelt men hur i h-e gör jag ovanstående? :)

En platta bärs eller en whisky till den som löser problemet innan måndag kväll 23 april-07.

/Stefan

Permalänk: https://www.webforum.nu/p/159499

## #2 — Gladh, 2007-04-21T13:12Z

Om du har bilden lagrad i din databas som en binary så måste du ju skapa en bild innan du kan skicka den till din websidor. Då har du ju skapat din bild som du kan manipulera.

Om du inte har bilderna i databasen utan endast länken till bilden, så får du använda Image objektet och LoadFromFile metoden för att skapa bilden, sen så kan du enkelt manipulera bilden.

\- M

Permalänk: https://www.webforum.nu/p/1969037

## #3 — ordell, 2007-04-22T08:51Z

Filen displayimage.aspx innehåller rimiligtvis kod för att hämta bilden från databasen och rendera den till klienten. Titta i koden för den sidan vad som händer.

Du bör ha ett image- eller bitmapobjekt som du kan skapa en Graphics-referens från och då kan du rita vad du vill på den ;)

Googla lite på t ex GDI+ eller så, så hittar du mer information om hur Graphics funkar.

Permalänk: https://www.webforum.nu/p/1969170

## #4 — MrJansson, 2007-04-22T09:44Z

Så har ser filen displayimage.aspx ut... 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim id_images As String = Request.QueryString("id_images")
        Dim size As String = Request.QueryString("size")
        Dim objCn As New System.Data.SqlClient.SqlConnection

        Dim objCmd As New System.Data.SqlClient.SqlCommand

        objCn.ConnectionString = "Data Source=(local);Initial Catalog=events;user=xx;password=xxx;"

        objCmd.Connection = objCn

        Dim strSQL = "SELECT \* FROM images WHERE id_images = '" & id_images & "'"

        objCmd.CommandText = strSQL

        Dim objAdapter As New System.Data.SqlClient.SqlDataAdapter

        Dim objDs As New System.Data.DataSet

        Dim objDataRow As System.Data.DataRow

        objAdapter.SelectCommand = objCmd

        objAdapter.Fill(objDs, "images")

        objDataRow = objDs.Tables("images").Rows(0)

        Response.ContentType = objDataRow.Item("LG_img_contenttype")
        If size = "thumb" Then
            Response.BinaryWrite(objDataRow.Item("SM_img_data"))
        Else
            Response.BinaryWrite(objDataRow.Item("LG_img_data"))

        End If

        objCn.Close()

    End Sub

Permalänk: https://www.webforum.nu/p/1969177

## #5 — ordell, 2007-04-22T09:53Z

Man kan väl anta att fälten SM_img_data och LG_img_data innehåller ett gäng med bytes som du kan ladda in i ett Bitmapobjekt med hjälp av en ström... Testa läsa in fälten till en byte\[\], läs in arrayen till en MemoryStream som du sen skapar en Image av med Image.FromStream(memoryStream).

Nåt åt det hållet ;)

Permalänk: https://www.webforum.nu/p/1969179

## #6 — MrJansson, 2007-04-23T15:13Z

> **ordell skrev:**
>
> Man kan väl anta att fälten SM_img_data och LG_img_data innehåller ett gäng med bytes som du kan ladda in i ett Bitmapobjekt med hjälp av en ström... Testa läsa in fälten till en byte\[\], läs in arrayen till en MemoryStream som du sen skapar en Image av med Image.FromStream(memoryStream).
> 
> Nåt åt det hållet ;)

Kanon!

Det fungerade som du sa, du är en klippa!

Här är resultatet om andra vill använda.

```
     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
       Dim id_images As String = Request.QueryString("id_images")
        Dim size As String = Request.QueryString("size")
        Dim marker As String = Request.QueryString("marker")
        Dim objCn As New System.Data.SqlClient.SqlConnection

        Dim objCmd As New System.Data.SqlClient.SqlCommand

        objCn.ConnectionString = "Data Source=(local);Initial Catalog=events;user=sa;password=L3ksand06AS;"

        objCmd.Connection = objCn

        Dim strSQL = "SELECT * FROM images WHERE id_images = '" & id_images & "'"

        objCmd.CommandText = strSQL

        Dim objAdapter As New System.Data.SqlClient.SqlDataAdapter

        Dim objDs As New System.Data.DataSet

        Dim objDataRow As System.Data.DataRow

        objAdapter.SelectCommand = objCmd

        objAdapter.Fill(objDs, "images")

        objDataRow = objDs.Tables("images").Rows(0)

        Response.ContentType = objDataRow.Item("LG_img_contenttype")
        objCn.Close()
        Dim objBitmap As Bitmap

        Dim objGraphics As Graphics
        If size = "thumb" Then
            Dim bytImageData() As Byte = objDataRow.Item("SM_img_data")
            Dim stmImageData As New MemoryStream(bytImageData)
            objBitmap = New Bitmap(stmImageData)
        Else
            Dim bytImageData() As Byte = objDataRow.Item("LG_img_data")
            Dim stmImageData As New MemoryStream(bytImageData)
            objBitmap = New Bitmap(stmImageData)
        End If

        objGraphics = Graphics.FromImage(objBitmap)

        objGraphics.DrawRectangle(New Pen(Color.Red, 4), x, y, width, height)
        objGraphics.DrawLine(New Pen(Color.Red, 2), x1, y1, x2, y2)
        objGraphics.DrawEllipse(New Pen(Color.Red, 2), New System.Drawing.Rectangle(x, y, width, height)))
 
        objBitmap.Save(Response.OutputStream, ImageFormat.Gif)

        objBitmap.Dispose()
        objGraphics.Dispose()
    End Sub
```

Permalänk: https://www.webforum.nu/p/1969437

## #7 — Travoni, 2007-04-23T15:40Z

MrJansson \[code \]-taggar om man får be... :)

Permalänk: https://www.webforum.nu/p/1969446

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/159499-drawline-drawcirlce-på-bilder-från-sql
