Avatar billede karsten_larsen Praktikant
05. oktober 2004 - 22:34 Der er 2 kommentarer og
1 løsning

AspImage - tager ikke værdien til udskrivning - arh

I forbindelse med udskrivning af flere billede efter hinanden tager AspImage ikke værdierne for det første billede.

I nedenstående kode som ellers virker fint, sålænge at AspImage bruges engang.

Problemet opstår når jeg vil have genereret flere billeder. Så bliver firkanten ikke sat det rigtige sted på det første billede. x1, y1, x2 og y2 får værdien -5 eller 5. Men for det andet billede får x1, y1, x2 og y2 den rigtige værdi, dvs. 35/45 og 55/65.

Nedenfor følger scriptet

?????:-)  karsten_larsen

<%
  dim var_x, var_y, var_resultat_x, var_resultat_y
    var_x = 0
    var_y = 0
    var_resultat_x = 0
    var_resultat_y = 0

  Function koordinat_x (var_x)
      var_resultat_x = 0
      var_resultat_x = (var_x - 20) * (256/60)
    x = var_resultat_x
  end function
 
  Function koordinat_y (var_y)
    var_resultat_y = 0
      var_resultat_y = 256 - ((var_y - 20) * (256/60))
    y = var_resultat_y
  end function

' billede 1
  Set Image = Server.CreateObject("AspImage.Image")

  Image.AntiAliasText = True
  Image.PadSize = 0
  Image.MaxX = 256
  Image.MaxY = 256

  ' baggrundsbillede
  path = Server.Mappath("/grafer/graf.jpg")
  Image.LoadImage path


    ' firkanter
  Image.BackgroundColor = vbRed
  koordinat_x (40)
  koordinat_y (60)
  x1 = x - 5
  x2 = x + 5
  y1 = y - 5
  y2 = y + 5
   
  Image.Rectangle x1, y1, x2, y2


    ' lav fil navn og gem fil
    Image.FileName = Server.Mappath("/log/billede3.jpg")
    if Image.SaveImage then
      Response.Write "<img src=""/log/billede3.jpg""><br>"
    else
      Response.Write "<h2>Fejl. Billedet kunne ikke gemmes</h2>"
    end if

    ' renser
  Set Image = nothing

' billede 2
  Set Image = Server.CreateObject("AspImage.Image")

  Image.AntiAliasText = True
  Image.PadSize = 0
  Image.MaxX = 256
  Image.MaxY = 256

    ' baggrundsbillede
    path = Server.Mappath("/grafer/graf.jpg")
    Image.LoadImage path


    ' firkanter
  Image.BackgroundColor = vbRed

  koordinat_x (40)
  koordinat_y (60)
  x1 = x -5
  x2 = x +5
  y1 = y -5
  y2 = y + 5
   
  Image.Rectangle x1, y1, x2, y2


    ' lav fil navn og gem fil
    Image.FileName = Server.Mappath("/log/billede4.jpg")
    if Image.SaveImage then
      Response.Write "<img src=""/log/billede4.jpg""><br>"
    else
      Response.Write "<h2>Fejl. Billedet kunne ikke gemmes</h2>"
    end if

    ' renser
  Set Image = nothing

%>
Avatar billede nythjem Nybegynder
05. oktober 2004 - 23:47 #1
Hej Karsten!

Jeg havde i sin tid noget af det samme problem, dog med beskæring. Jeg havde fire mål. Jeg havde en boks, der havde en x og en y værdi. Jeg havde desuden X1, og Y1, der bestemte hvor boksen skulle være placeret på indenfor billedet. Jeg fandt ud af, at man "af en eller anden underlig grund" ikke kunne diktere X1 og Y1 direkte, men derimod skulle lave en lille sammenregnings finde.

Jeg har pastet mit eget script, håber du kan finde inspiration i det..

<%
Bebredde = Request.Form("rammebredde")
Session("Bebredde") = Bebredde

Behoejde = Request.Form("rammehoejde")
Session("Behoejde") = Behoejde

Xbredde = Request.Form("Xbredde")
Session("Xbredde") = Xbredde

Yhoejde = Request.Form("Yhoejde")
Session("Yhoejde") = Yhoejde

' HER REGNER VI EN EKSTRA BESKÆRINGRAMME UD

NyBredde = int(Bebredde) + int(Xbredde)
Session("NyBredde") = NyBredde

NyHoejde = int(Behoejde) + int(Yhoejde)
Session("NyHoejde") = NyHoejde

' Fra en anden side, derfor er der brugt sessions :)

x = Session("Xbredde")
y = Session("Yhoejde")
x1 = Session("NyBredde")
y1 = Session("NyHoejde")


' Create instance of AspJpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")
   
' Compute path to source image
Path = Server.MapPath("..\..\..\billeder") & "\" & session("navn")

' Open source image
Jpeg.Open Path

' Find højde og bredde
Jpeg.Width = Jpeg.OriginalWidth
Jpeg.Height = Jpeg.OriginalHeight

Jpeg.Crop X, Y, X1, Y1

Jpeg.Save Server.MapPath("..\..\..\billeder") & "\klip_" & Session("navn")
%>
Avatar billede karsten_larsen Praktikant
06. oktober 2004 - 02:06 #2
hmm - det gav lidt inspiration. Løsningen blev ikke at kalde funktionen ved første billede. Session ideen løste problemet for den ene koordinat men ikke den anden.

En underlig fejl.

Tak for inspirationen.
Avatar billede nythjem Nybegynder
06. oktober 2004 - 10:18 #3
Jahh, men sådan er det jo. På med hatten, og hils på naboen,

og tak for point :)
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
Kategori
Kurser inden for grundlæggende programmering

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