17. august 2004 - 09:24
Der er
15 kommentarer og 1 løsning
Billedskallering og udtræk
Jeg har en database hvor jeg lager stien til billedet I database har jeg disse felter: id = Autonummerering Filsti = Tekst Width = Tal Height = Tal Nu vil jeg gerne have at billedet bliver trukket ud af databasen med en fast størrelse i både højde og bredde. Der skal så også være mulighed for at klikke sig til billedet i normal størrelse. Når jeg indsætte koden nedefor for jeg en fejl som jeg aldrig har set før: Microsoft VBScript runtime error '800a0006' Overflow /beskriv.asp, line 51 og linje 51 er: Percent = FixWidth/Width) <% strSQL = "Select * From keywords Where kw_ID = "&Request.Querystring("id")&"" Set rs = Conn.Execute(strSQL) If (Not RS.BOF) And (Not RS.EOF) Then RS.MoveFirst While Not RS.EOF If Width >= 100 Then FixWidth = 100 Else FixWidth = Width End if Percent = FixWidth/Width) FixHeight = Height*Percent) Response.Write ("<img src='" & rs("Filsti") & "' width='" & rs ("FixWidth") & "' height='" & rs ("FixHeight") & "'>") RS.MoveNext Wend Else Response.Write "Beklager - Men er er ikke noget billedet til denne vare. <br />" End If CloseDatabase %>
Annonceindlæg fra Thales
17. august 2004 - 09:32
#1
width har ikke en værdi før du bruger den i if sætningen eller før denne linje Percent = FixWidth/Width) Så spørgsmålet er hvor skal width komme fra? Er det en kolonne i databasen? Eks: <% strSQL = "Select * From keywords Where kw_ID = "&Request.Querystring("id")&"" Set rs = Conn.Execute(strSQL) If (Not RS.BOF) And (Not RS.EOF) Then RS.MoveFirst While Not RS.EOF Width = Rs("Width") If Int(Width) >= 100 Then FixWidth = 100 Else FixWidth = Width End if Percent = FixWidth/Width) FixHeight = Height*Percent) Response.Write ("<img src='" & rs("Filsti") & "' width='" & rs ("FixWidth") & "' height='" & rs ("FixHeight") & "'>") RS.MoveNext Wend Else Response.Write "Beklager - Men er er ikke noget billedet til denne vare. <br />" End If CloseDatabase %>
17. august 2004 - 09:34
#2
Hov og FixWidth og FixHeight er kolonner men variable og width og hight er kolonner i recordsetet så prøv: <% strSQL = "Select * From keywords Where kw_ID = "&Request.Querystring("id")&"" Set rs = Conn.Execute(strSQL) If (Not RS.BOF) And (Not RS.EOF) Then RS.MoveFirst While Not RS.EOF Width = Rs("Width") If Int(Width) >= 100 Then FixWidth = 100 Else FixWidth = Width End if Percent = int(FixWidth/Width) FixHeight = int(rs("Height")*Percent) Response.Write ("<img src='" & rs("Filsti") & "' width='" & FixWidth & "' height='" & FixHeight & "'>") RS.MoveNext Wend Else Response.Write "Beklager - Men er er ikke noget billedet til denne vare. <br />" End If CloseDatabase %>
17. august 2004 - 09:34
#3
hmm første linje tekst skulle være: Hov, FixWidth og FixHeight er ikke kolonnernavne men variable og width og Height er kolonner i recordsetet så prøv:
17. august 2004 - 09:56
#4
tak jeg prøver lige
17. august 2004 - 10:14
#5
nu er der da ikke nogen fejl, bredden er god nok, men højde er 1-2 px
17. august 2004 - 10:26
#6
ok umiddelbart kan jeg ikke se den skulle få det helt ved siden af?? men du ka jo prøve at kigge på disse på linjer hvor udregningen af højden er: Percent = int(FixWidth/Width) FixHeight = int(rs("Height")*Percent) Evt prøv at uskrive de forskellige tal og regne efter: Percent = int(FixWidth/Width) FixHeight = int(rs("Height")*Percent) response.write "percent = " & persent & " --- Height = " & rs("Height") & " --- FixHeight = " & FixHeight & "<br>"
17. august 2004 - 10:28
#7
ho og så med rigtig variable navne: Percent = int(FixWidth/Width) FixHeight = int(rs("Height")*Percent) response.write "percent = " & Percent & " --- Height = " & rs("Height") & " --- FixHeight = " & FixHeight & "<br>"
17. august 2004 - 10:51
#8
den forstår jeg ikke lige
17. august 2004 - 10:53
#9
Hvis den regner højden ud til 1 eller 2 pixel så må der være enten en fejl i udregningen af percent eller FixHeight. Det kan også være hight i databasen er meget lille. udregningen sker i af højden sker i disse linjer: Percent = int(FixWidth/Width) FixHeight = int(rs("Height")*Percent) Prøv at udksrive de forskellige variable så kan du regne efter om den regner rigtigt eller der er noget andet som gør højden er alt for lille: med rigtig variable navne: Percent = int(FixWidth/Width) FixHeight = int(rs("Height")*Percent) response.write "percent = " & Percent & " --- Height = " & rs("Height") & " --- FixHeight = " & FixHeight & "<br>"
17. august 2004 - 11:00
#10
okay prøver at lege lidt
17. august 2004 - 12:03
#11
nu virker det men ikke som det skulle. Hvis jeg uploader et billedet i størrelsen 500*500 skal koden vise billedet i størrelsen 100*100 uden at jeg skal sætte størrelsen i databasen. Og det er så først når der klikkes på billedet at den skal hente det i fuld størrelse.
17. august 2004 - 12:07
#12
Så du gemmer ikke størrelsen i databasen? Så må du havde fat i en billede komponent som kan give dig størrelsen på billedet. Eller lave noget kode med FSO som kan læse størrelsen.
17. august 2004 - 12:09
#13
Der er en lille komponet der hedder ImageSize som kan finde størrelsen. Du kan bruge ASPimage eller anden komponetn. Hvilke komponenter har du adgang til?
17. august 2004 - 12:26
#14
Jeg har gemt størrelsen på billedet i databasen, men det var ment så den har mulighed for at finde den rigtide størrelse. Sådanne komponenter er der ikke på serveren. Men er de gratis vil mit webhotel gerne installer det. Lige nu er der aspSmartUpload på server der har med billeder at gøre.
17. august 2004 - 12:58
#15
Ok, så der ikke noget problem Arh jeg har lavet en bøf :( der skal jo ikke Int omkring i denne linje: Percent = int(FixWidth/Width) Det skal jo netop være et komma tal for den kan regne fixhieght ud så prøv sådan her: Percent = FixWidth/Width
17. august 2004 - 20:24
#16
Det er ud til at virke fint. jeg tænkte op om du ikke har lyst til at hjælpe mig med noget mere nu da du er inden i det?
Kurser inden for grundlæggende programmering