webForumDet fria alternativet

Hjälp med bildscript...

3 svar · 197 visningar · startad av Hembrink

HembrinkMedlem sedan juni 200311 inlägg
#1

Frågade efter ett script där jag kunde streama bilder genom image.aspx som gjorde dem till tumnaglar. ex <img src="image.aspx?src=bild.jpg&height=100&width=100"> Fick denna koden;

<%@ Page Language="vb" %>
<%@ import namespace="System" %>
<%@ import namespace="System.IO" %>
<%@ import namespace="System.Drawing" %>
<%@ import namespace="System.Drawing.Imaging" %>
<script runat="server">

Sub sendFile()
dim g as System.Drawing.Image = System.Drawing.Image.FromFile(server.mappath(request.querystring("src")))
dim thisFormat = g.rawformat
dim imgOutput as New Bitmap(g, cint(request.querystring("width")), cint(request.querystring("height")))

if thisformat.equals(system.drawing.imaging.imageformat.Gif) then
    response.contenttype="image/gif"
else
    response.contenttype="image/jpeg"
end if

imgOutput.save(response.outputstream, thisformat)

g.dispose()
imgOutput.dispose()

end sub

Sub sendError()
dim imgOutput as New bitmap(100, 120, pixelformat.format24bpprgb)
dim g as graphics = graphics.fromimage(imgOutput)

g.clear(color.Silver)
g.drawString("Det blev fel", New font("verdana",10,fontstyle.bold),systembrushes.windowtext, New pointF(2,2))

response.contenttype="image/gif"

imgOutput.save(response.outputstream, imageformat.Jpeg)

g.dispose()
imgOutput.dispose()

end sub

Sub Page_Load()

response.clear

if request.querystring("src")="" or request.querystring("height")="" or request.querystring("width")="" then
    call sendError()
else
    if file.exists(server.mappath(request.querystring("src"))) then
        call sendFile()
    else
        call sendError()
    end if
end if

response.end

End Sub
</script>

Jag kan ingen .net så jag frågade en jag känner om hon kunde hjälpa mig att göra om det lite så att om querystringen "height" är tom så ska scriptet räkna ut höjden själv med hjälp av följande formel; höjden = orginalhöjden * bredden / orginalbredden (höjden och bredden är det som angets i querystringarna och orginalbredd och orginalhöjd är då höjden och bredden som bilden har egentligen...). Men hon lyckades inte, så jag undrar om nån snäll kunde förklara hur man gör detta!

IngridMedlem sedan dec. 19997 740 inlägg
#2

Exakt....VAD är det du behöver hjälp med?

HembrinkMedlem sedan juni 200311 inlägg
#3

Om du läser lite nedanför scriptet så ser du att jag behöver hjlp med att om querystringen "height" är tom så ska scriptet räkna ut höjden själv med hjälp av följande formel; höjden = orginalhöjden * bredden / orginalbredden (höjden och bredden är det som angets i querystringarna och orginalbredd och orginalhöjd är då höjden och bredden som bilden har egentligen...).

PaceMedlem sedan juni 20019 024 inlägg
#4

Under förutsättning att du anger en fast bredd på tumnagel-bilderna är detta ett alternativ:

[red]Dim Width As Integer = Request.QueryString("width")
Dim Height As Integer = Request.QueryString("height")
Dim ThumbWidth As Integer = 200 'px
Dim ThumbHeight As Integer = (Height * ThumbWidth) / Height[/red]

dim imgOutput as New Bitmap(g, ThumbWidth, ThumbHeight)
129 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)