Avatar billede mm12010 Nybegynder
22. april 2003 - 23:02 Der er 15 kommentarer og
2 løsninger

width på billede vha. FileSystemObject

Hvordan kan jeg i J(ava)Script finde width på et billede, uden at have adgang til image-komponenter?

Jeg ved at man kan i VB:
http://www.faqts.com/knowledge_base/view.phtml/aid/5052
http://activedeveloper.dk/aspdigital/kapitel6/graphic_size.asp

Jeg kan bare ikke gennemskue koden...
Avatar billede medions Nybegynder
22. april 2003 - 23:13 #1
Det kan du ikke vha. FSO! Du er nødt til bruge en Image komponent! Du kan fx. med ASPImage -læs mere om den under komponenter på www.activeserverpages.dk

//>Rune
Avatar billede olebole Juniormester
23. april 2003 - 04:50 #2
<ole>

Jo, det kan man da sagtens. Dimensionerne står jo i filen ... det er kun et spørgsmål om at ekstrahere dem  :)

Der er ikke så meget at gennemskue ... hvad er det, du ikke kan finde ud af?
Hvis du tager scriptet:
  http://activedeveloper.dk/aspdigital/kapitel6/graphic_size.asp
Står der i toppen:

<html><head>
<title>Dimensioner på grafik (server side)</TITLE>
</head><body>

<%
strGrafik = "images/asplogo.gif"
Size = ReadImg(strGrafik)
Response.Write "<p>Størrelsen på &quot;<b>/" & strGrafik & "</b>&quot; er: " & Size(0) & "x" & Size(1) & "<br>"
Response.Write "<p><img src=/" & strGrafik & "></p>"
%>

Du kunne nøjes med:

<html><head>
<title>Dimensioner på grafik (server side)</TITLE>
</head><body>

<%
strGrafik = "images/asplogo.gif"
Size = ReadImg(strGrafik)
Response.Write "Bredde: " & Size(0)
%>

... samtidig skal du sætte 'Server.MapPath' i alle Read-funktionerne:
  Set ts = fso.OpenTextFile(Server.MapPath("/bla/test/" & filen), 1)

Hvis du sætter den sådan, ligger billedet i mappen 'test', som ligger i mappen 'bla', som ligger i roden af din server.

/mvh
</bole>
Avatar billede olebole Juniormester
23. april 2003 - 04:52 #3
Oooooops .... hvis du sætter den viste 'Server.MapPath' og billedet ligger ved siden af filen, skal der i første ASP-linie stå:
  strGrafik = "asplogo.gif"
Avatar billede medions Nybegynder
23. april 2003 - 07:37 #4
Det har du sq da egentlig ret i! :-) -se det havde jeg sq aldrig tænkt over :oD
Men fair nok hvis det så oxo virker!

//>Rune
Avatar billede mm12010 Nybegynder
23. april 2003 - 13:17 #5
ole >> Hvad så med:

Function ReadJPG(filen)
    Dim fso, ts, s, HW, ns, n, ok
    HW = Array("","")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.OpenTextFile(Server.MapPath("/" & filen), 1)
    ts.Skip(2)
    ns = ts.Read(2)
    Do While Not (ns = "ÿÀ" Or ns = "ÿÂ")
        ns = ts.Read(2)
        n = HexToDec(HexAt(ns,1) & HexAt(ns,2))
        n = n - 2
        ts.Skip(n)
        ns = ts.Read(2)
    Loop
    ts.Skip(3)
    s = ts.Read(4)
    HW(0) = HexToDec(HexAt(s,3) & HexAt(s,4))
    HW(1) = HexToDec(HexAt(s,1) & HexAt(s,2))
    ts.Close
    Set ts = Nothing
    ReadJPG = HW
End Function

Function ReadGIF(filen)
    Dim fso, ts, s, HW, nbytes
    HW = Array("","")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.OpenTextFile(Server.MapPath("/" & filen), 1)
    ts.Skip(6)
    s = ts.Read(4)
    HW(0) = HexToDec(HexAt(s,2) & HexAt(s,1))
    HW(1) = HexToDec(HexAt(s,4) & HexAt(s,3))
    ts.Close
    ReadGIF = HW
End Function
Avatar billede olebole Juniormester
23. april 2003 - 14:59 #6
Nejnej .... du skal da have de funktioner med, du bruger i de to funktioner. Koden hænger sammen, som den er vist. Du kan ikke skære halvdelen fra og forvente, den virker  :)
Avatar billede olebole Juniormester
23. april 2003 - 15:00 #7
Avatar billede mm12010 Nybegynder
23. april 2003 - 15:03 #8
og den indeholder en masse VB som jeg ikke fatter en bjælde af... :o)
Avatar billede olebole Juniormester
23. april 2003 - 15:11 #9
Jamen, der er ikke noget, du skal fatte en bjælde af ... du skal bare bruge den, som den er  :)
Avatar billede mm12010 Nybegynder
23. april 2003 - 15:24 #10
som jeg også skriver i spg'et koder jeg i JScript... så kan man da ikke bare bruge VB midt i det hele...?
Avatar billede olebole Juniormester
23. april 2003 - 15:32 #11
Det kan du sagtens - du skal bare bruge de rigtige script-tags  :)
Avatar billede mm12010 Nybegynder
23. april 2003 - 15:35 #12
ok - men jeg skal jo kunne dokumenterer mit system, så jeg er nød til at ha det i JScript, ellers er jeg lidt på prutten...
Avatar billede olebole Juniormester
23. april 2003 - 15:43 #13
Ved du, hvordan en binær billedfils kode hænger sammen? Ellers kan du jo ikke dokumentere script'et, selvom jeg f.eks. oversatte det til JScript.
Hvis ikke du forstår, hvad det er script'et læser, kan du ikke dokumentere koden - andet end at sige: "... og her læser den så et eller andet i billedfilen, jeg ikke aner, hvad er - og får et eller andet ud af det, som den bruger til at læse noget andet der" ... osv.
Avatar billede mm12010 Nybegynder
23. april 2003 - 15:51 #14
det kan du selvfølge ha ret i, men alligevel...


hvis ikke det kan lade så gøre, må jeg jo gøre det på en anden måde.

i så fald vil jeg godt give dig lidt for din tid, hvis du smider et svar...
Avatar billede olebole Juniormester
23. april 2003 - 15:59 #15
"hvis ikke det kan lade så gøre, må jeg jo gøre det på en anden måde."
Det ved jeg ikke, om det kan. Du kan sagtens bruge scriptet, men om du mener, du kan dokumentere det, er nok en anden sag. Jeg sad selv og oversatte en del af det inat (jeg skriver selv JScript og haaaaaader VBS) .... det tror jeg ikke, du får en hat mere ud af. Det hele handler jo om at trække brugbare data ud af en binær kode. Dvs: vide, hvad koden betyder og hvor de forskellige data står skrevet.
/mvh
Avatar billede olebole Juniormester
23. april 2003 - 16:00 #16
PS: Skal du gøre det uden adgang til billedkomponenter, er der serverside ikke anden mulighed end denne
Avatar billede mm12010 Nybegynder
23. april 2003 - 16:23 #17
ok - takker for hjælpen

NB. hader også VB :o)
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