Avatar billede vester Novice
19. september 2008 - 21:53 Der er 12 kommentarer og
1 løsning

Persists og skalering

Nu har jeg efterhånden forsøgt mig i flere timer, og jeg kan ikke få det til at virke.
Jeg vil gerne uploade et billede, resize det til 320x240 pixels og navngive det ud fra en QueryString (evt. overwrite). Alt dette med ASPUpload/ASPJpeg.
Er der en, der kan få det til at virke?

VesTer
Avatar billede w13 Novice
19. september 2008 - 22:10 #1
Prøv at vise os, hvad du har forsøgt.
Avatar billede vester Novice
19. september 2008 - 22:25 #2
%Server.ScriptTimeout = 300 %>
<%
' Create an instance of AspUpload object
Set Upload = Server.CreateObject("Persits.Upload")
' Compute path to save uploaded files to
Path = Server.MapPath(".")

' Capture uploaded file. Return the number of files uploaded
Count = Upload.Save(Path)

If Count = 0 Then
  Response.Write "No images selected."
  Response.End
Else
  ' Obtain File object representing uploaded file
  Set File = Upload.Files(1)

  ' Is this a valid image file?
  If File.ImageType <> "UNKNOWN" Then

    ' Create instance of AspJpeg object
    Set jpeg = Server.CreateObject("Persits.Jpeg")

    ' Open uploaded file
    jpeg.Open( File.Path )

    ' Resize image according to "scale" option.
    ' We cannot use Request.Form, so we use Upload.Form instead.
    jpeg.Width = jpeg.OriginalWidth * Upload.Form("scale") / 100
    jpeg.Height = jpeg.OriginalHeight * Upload.Form("scale") / 100

    SavePath = Path & "\small_" & File.ExtractFileName

    ' AspJpeg always generates thumbnails in JPEG format.
    ' If the original file was not a JPEG, append .JPG ext.
    If UCase(Right(SavePath, 3)) <> "JPG" Then
      SavePath = SavePath & ".jpg"
    End If

    jpeg.Save SavePath
  End If
End If
Capture and save uploaded image to the same directory as script
For Each File in Upload.Files
  Jpeg.Open File.Path'

  Scale = Upload.Form("Scale")
  Jpeg.Width = Jpeg.OriginalWidth * Scale / 100
  Jpeg.Height = Jpeg.OriginalHeight * Scale / 100
  Response.Write Jpeg.OriginalHeight & "-" & Jpeg.Height
  Jpeg.Save Server.MapPath(".") & "\small_" & File.FileName
%>
  <IMG SRC="<% = File.FileName %>"><BR>
  <IMG SRC="<% = "small_" & File.FileName %>"><P>
<%
Next
%>
<!--#include file="./DbCon.asp" -->
<%
StaevneId=Request.QueryString("Id")
strSQL = "SELECT * FROM StaevneOversigt Where StaevneId=" & StaevneId
RS.Open strSQL, objConn, 2, 2
RS("Billede")=Billede
RS.Update
RS.Close
%>
Avatar billede vester Novice
19. september 2008 - 22:26 #3
Lige nu er det linie 33  Scale = Upload.Form("Scale"), der driller.
Den skriver: Type mismatch: '[string: ""]'
Avatar billede w13 Novice
19. september 2008 - 22:35 #4
Det kunne se ud, som om Upload.Form("Scale") er tomt. Prøv evt. at response.write det.
Avatar billede vester Novice
19. september 2008 - 22:38 #5
Er det input fra en formular?
Avatar billede vester Novice
19. september 2008 - 22:48 #6
Jeg vil meget gerne ende med en meget simplificeret udgave, der gør følgende:
Uploader billedet
Skalerer det ned til 320x 240 pixels
Gemmer det i mappen ./Staevner under navnet Staevne(også Id fra QueryString ID)
Avatar billede w13 Novice
19. september 2008 - 22:52 #7
Ja, det betyder, at det hentes fra en formular. Det er vist bare et tal mellem 0 og 0, som angiver procentskalering.

Ret f.eks.:

Scale = Upload.Form("Scale")

til:

Scale = 0.5

Så skulle det gerne skaleres halvtreds procent.

Tror jeg. =)
Avatar billede vester Novice
19. september 2008 - 22:54 #8
OK.
Hvis det så altid skal være den samme størrelse?
Avatar billede w13 Novice
20. september 2008 - 14:58 #9
Hvis du retter det til det, jeg skrev, vil det altid være den størrelse, der bliver brugt. Hvis man skal kunne indtaste det selv, skal du beholde:

Scale = Upload.Form("Scale")

Men så skal du selvfølgelig have et Scale-felt i din formular, hvor det skal indtastes/vælges. (Nok helst en Select-boks.)
Avatar billede vester Novice
20. september 2008 - 18:21 #10
Fik selv løst den ved at lave
  Jpeg.Width = Jpeg.OriginalWidth * Scale / 100
  Jpeg.Height = Jpeg.OriginalHeight * Scale / 100
om til
  Jpeg.Width = "320"
  Jpeg.Height = "240"
og så virkede den efter hensigten.

Takker for indsatsen

VesTer
Avatar billede w13 Novice
27. september 2008 - 13:11 #11
Husk at acceptere dit svar for at lukke spørgsmålet.
Avatar billede vester Novice
27. september 2008 - 13:44 #12
Tak for påmindelsen :-)
Avatar billede w13 Novice
27. september 2008 - 13:52 #13
;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester