Avatar billede thomas_b Nybegynder
14. oktober 2007 - 17:44 Der er 22 kommentarer og
1 løsning

ASP Image - og URL

Hvorfor virker dette ikke !!!

filnavn = "http://www.jiv.dk/struer/jpg/900/jpg950.jpg"
Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage (Server.URLEncode(filnavn))
Avatar billede w13 Novice
14. oktober 2007 - 17:46 #1
Lige nu har du nok bedre odds for at fortælle os, hvorfor det ikke dur, da du kender fejlmeddelelsen og vi ikke gør. Hvad siger den?
Avatar billede thomas_b Nybegynder
14. oktober 2007 - 17:51 #2
Ops... hehe

Mit script ser således ud...:

<%
filnavn = "http://www.jiv.dk/struer/jpg/900/jpg950.jpg"
Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage (Server.URLEncode(filnavn))

pos_X="250"
pos_Y="200"

' hvis breden er den størreste
if (Image.MaxX / pos_X) > (Image.MaxY / pos_Y) then

'MAX 250pixel i breden

    intRatio = ((pos_X * 100) / Image.MaxX)
    intNewY = CInt(Image.MaxY * (intRatio / 100))
    Image.ResizeR pos_X, intNewY
    Image.ImageFormat = 1

restY = (pos_Y-intNewY)\2
Image.CropImage 0, -restY, pos_X, pos_Y

else

'MAX 200pixel i højden

    intRatio = ((pos_Y * 100) / Image.MaxY)
    intNewX = CInt(Image.MaxX * (intRatio / 100))
    Image.ResizeR intNewX, pos_Y
    Image.ImageFormat = 1

restX = (pos_X-intNewX)\2
Image.CropImage -restX, 0, pos_X, pos_Y

end if

Image.FileName = Server.MapPath("fejl123456789.jpg")

Image.SaveImage
Set Image = nothing
%>

og der kommer fejl i linien: "intRatio = ((pos_Y * 100) / Image.MaxY)" fejlen hedder "Division by zero"... jeg mener det skulle være fordi at den ikke kan finde billedet og derved ikke Y-aksen...?
Avatar billede compilos Nybegynder
14. oktober 2007 - 17:57 #3
Kan det vaære at
pos_X="250"
pos_Y="200"
bliver opfattet som tekststrenge
Avatar billede w13 Novice
14. oktober 2007 - 17:57 #4
Prøv lige:

<%
filnavn = "http://www.jiv.dk/struer/jpg/900/jpg950.jpg"
Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage (Server.URLEncode(filnavn))

pos_X="250"
pos_Y="200"

Response.Write Image.MaxX&","&Image.MaxY

' hvis breden er den størreste
if (Image.MaxX / pos_X) > (Image.MaxY / pos_Y) then

'MAX 250pixel i breden

    intRatio = ((pos_X * 100) / Image.MaxX)
    intNewY = CInt(Image.MaxY * (intRatio / 100))
    Image.ResizeR pos_X, intNewY
    Image.ImageFormat = 1

restY = (pos_Y-intNewY)\2
Image.CropImage 0, -restY, pos_X, pos_Y

else

'MAX 200pixel i højden

    intRatio = ((pos_Y * 100) / Image.MaxY)
    intNewX = CInt(Image.MaxX * (intRatio / 100))
    Image.ResizeR intNewX, pos_Y
    Image.ImageFormat = 1

restX = (pos_X-intNewX)\2
Image.CropImage -restX, 0, pos_X, pos_Y

end if

Image.FileName = Server.MapPath("fejl123456789.jpg")

Image.SaveImage
Set Image = nothing
%>

Her har jeg tilføjet Response.Write Image.MaxX&","&Image.MaxY, så vi kan se, om de er 0. Det lader det jo stærkt til.
Avatar billede thomas_b Nybegynder
14. oktober 2007 - 17:59 #5
w13> den skriver ganske rigtigt 0,0
Avatar billede compilos Nybegynder
14. oktober 2007 - 17:59 #6
-> Som du så bruger til at fremfinde intRatio
Avatar billede w13 Novice
14. oktober 2007 - 18:03 #7
Er din hjemmeside www.jiv.dk?
Avatar billede thomas_b Nybegynder
14. oktober 2007 - 18:04 #8
nej det er den ikke...! det er en URL jeg henter udefra
Avatar billede thomas_b Nybegynder
14. oktober 2007 - 18:04 #9
compilos > forstår ikke hvad du skriver... :)
Avatar billede w13 Novice
14. oktober 2007 - 18:08 #10
Compilos foreslår, at du retter:
pos_X="250"
pos_Y="200"
Til:
pos_X=250
pos_Y=200

Det første er nemlig tekststrenge, hvor det andet er numeriske strenge. Det kunne godt give problemer, men det lader ikke til at være problemet. Nu ved vi jo, at Image.maxX/Y er 0.

Prøv lige med at billede på din egen server først. Og så uden Server.URLEncode, men med Server.MapPath i stedet. Så ser vi, om koden fungerer i det tilfælde. Ved ikke, om det kan give problemer, at det er et billede på en anden server.

F.eks.:

filnavn = "/images/900/jpg950.jpg"
Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage Server.MapPath(filnavn)
Avatar billede thomas_b Nybegynder
14. oktober 2007 - 18:13 #11
Det virker helt fint med MapPath... når billedet ligger på min server... bare ikke når jeg skriver en anden URL!
Avatar billede w13 Novice
14. oktober 2007 - 18:21 #12
Ok. Jeg ved faktisk ikke, om det er "ulovligt" med billeder fra en anden server, men det kunne jo lidt tyde på, at du ikke har tilladelse til det. Kan være der kommer en forbi her, der ved det.

Ellers kan du jo prøve igen, bare uden Server.URLEncode?
Avatar billede thomas_b Nybegynder
14. oktober 2007 - 18:23 #13
Kunne man gøre det med en upload-komponent som jeg har ??
Avatar billede w13 Novice
14. oktober 2007 - 18:32 #14
Måske. =) Ved ikke, om Upload-komponenten har tilladelsen. Men prøv lige uden Server.URLEncode, bare for god ordens skyld.
Avatar billede thomas_b Nybegynder
14. oktober 2007 - 18:38 #15
Hvordan mener du, uden Server.URLEncode ??
Avatar billede w13 Novice
14. oktober 2007 - 18:39 #16
filnavn = "http://www.jiv.dk/struer/jpg/900/jpg950.jpg"
Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage filnavn
Avatar billede thomas_b Nybegynder
14. oktober 2007 - 18:40 #17
stadig "Division by zero"
Avatar billede w13 Novice
14. oktober 2007 - 18:41 #18
Ok. Ingen tilladelse, lader det til. =S
Avatar billede w13 Novice
14. oktober 2007 - 18:41 #19
Du kan evt., som du foreslog, se om din upload-komponent kan bruge filen. Men er bange for, restriktionen også gælder for den komponent.
Avatar billede thomas_b Nybegynder
14. oktober 2007 - 18:44 #20
Hmm... det lader til at den bare uploader et tomt billede... på 28x30 pixel !!
Kender du andre muligheder, man kunne bruge...
Avatar billede w13 Novice
14. oktober 2007 - 18:50 #21
Nej, ikke umiddelbart. Du har vist ikke tilladelse til at pille ved andre servere. Men det er nu ikke noget, jeg ved så meget om. Evt. kunne du høre din udbyder.
Avatar billede thomas_b Nybegynder
05. december 2007 - 09:33 #22
et svar :)
Avatar billede w13 Novice
05. december 2007 - 14:40 #23
Oki. ^^
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