hur stänger jag av responsen till webbläsaren så att jag kan få ut html istället?
thumb = orginalimg.GetThumbnailImage(width, height, Nothing, inp)
' Sending Response JPEG type to the browser.
'Response.ContentType = "image/jpeg"
thumb.Save(Response.OutputStream, Imaging.ImageFormat.Jpeg)
Tror inte du kan få bild och HTML från samma ASP.NET sida samtidigt, måste delas upp på så sätt att du har en sida som svara med html och en annan som hanterar bilden.
Vad är det du försöker göra?
Laddar du upp en fil eller?
I så fall gör du själva sparandet med den inbyggda funktionaliteten som finns. Du behöver inte sätta ContentType. Sedan när filen är sparad gör du antingen en redirect till en annan sida som visar bilden eller så visar du bilden på den sidan som laddat upp den.
Eftersom det är en thumbnail du gör så ska du sätta koden ovan i en .aspx fil. Sedan använder du den .aspx filen som ImageURL i en Image kontroll på den sida som skall visa bilden.
Kolla på den här artikeln http://www.developer.com/net/asp/article.php/3098311
Vad det handlar om är att du ska ha två aspx sidor. Den ena genererar en thumbnail av en bild som du skickar in filnamnet på. Du sätter då ContentType till image.
I den aspx sidan du ska visa bilden sätter du mintumme.aspx?filename=myImage.jpg som ImageUrl.
Beror på att funktionen GetThumbnailImage även skalar ner kvaliten. Något som kan motverkas genom att skriva egen kod för att ändra storlek på bilden. Ska finnas en relativt ny tråd om det i ASP.NET där även lösning finnas att tillgå.
Dim strServerPath, strFilename As String
Dim shtWidth, shtHeight As Short
Dim TIA As System.Drawing.Image.GetThumbnailImageAbort
Dim imgFormat As Imaging.ImageFormat
Dim mImage As System.Drawing.Image
strServerPath = Server.MapPath("\thumb\bilder\")
strFilename = strServerPath & Request.QueryString("filename")
Try
mImage = mImage.FromFile(strFilename)
Catch
mImage = mImage.FromFile(strServerPath & "error.gif")
End Try
If Request.QueryString("width") = Nothing Then
shtWidth = mImage.Width
Else
shtWidth = Request.QueryString("width")
End If
If Request.QueryString("height") = Nothing Then
shtHeight = mImage.Height
Else
shtHeight = Request.QueryString("height")
End If
Response.ContentType = "image/bmp"
Dim btm As New Bitmap(mImage)
mImage.Dispose()
mImage = btm
mImage = mImage.GetThumbnailImage(shtWidth, shtHeight, TIA, IntPtr.Zero)
mImage.Save(Response.OutputStream, imgFormat)
mImage.Dispose()
End Sub
jag ska använda scriptet för att låta medlemmar beskära sina bilder är det bra och använda getthumbnal eller ska jag köra nånting annat? för de går väldigt segt när man zoomar en bild och sånt!
Är du nöjd med den kvalitén som GetThumbnail erbjuder kan du använda den funktionen, annars använd någon av de som fanns i tråden jag angav tidigare. Sedan bör man också väga in hur mycket kraft den tar i från servern, dvs används funktionen frekvent osv...
Får du något felmeddelande när du inte får ut bilden?
<%@ Page Language="vb" %>
<%@ import namespace="System.Drawing" %>
<%@ import namespace="System.Drawing.Imaging" %>
<script runat="server">
Sub Page_Load()
response.clear
Dim strURL As String = Server.MapPath(Request.QueryString("src"))
Dim intWidth As Integer = CInt(Request.QueryString("width"))
Dim intHeight As Integer = CInt(Request.QueryString("height"))
dim g as System.Drawing.Image = System.Drawing.Image.FromFile(strURL)
dim thisFormat = g.rawformat
dim imgOutput as New Bitmap(g, intWidth, intHeight)
imgOutput.save(response.outputstream, thisformat)
g.dispose()
imgOutput.dispose()
response.end
End Sub
</script>
image.aspx?src=bilden.format&width=bredd:
<%@ Page Language="vb" %>
<%@ import namespace="System.Drawing" %>
<%@ import namespace="System.Drawing.Imaging" %>
<script runat="server">
Sub Page_Load()
Response.Clear()
Dim strURL As String = Server.MapPath(Request.QueryString("src"))
Dim intWidth As Integer = CInt(Request.QueryString("width"))
Dim g As System.Drawing.Image = System.Drawing.Image.FromFile(strURL)
Dim intHeight As Integer = (intWidth / g.Width) * g.Height
Dim thisFormat = g.RawFormat
Dim imgOutput As New Bitmap(g, intWidth, intHeight)
imgOutput.Save(Response.OutputStream, thisFormat)
g.Dispose()
imgOutput.Dispose()
Response.End()
End Sub
</script>