13. april 2004 - 19:54Der er
5 kommentarer og 1 løsning
Bredde/width på billede hentet fra mappe
Jeg henter alle billederne i en mappe på følgende måde:
Set mappe = Nothing Set fil = Nothing Set FSO = Nothing
Set FSO = Server.CreateObject("Scripting.FileSystemObject") Set mappe = FSO.GetFolder(Server.MapPath("grafik")) billeder_filer_liste = "" For Each fil In mappe.Files If InStr(fil.Name,".gif") Then billeder_filer_liste = billeder_filer_liste & "," & fil.Name End If Next Set mappe = Nothing Set fil = Nothing Set FSO = Nothing billeder_filer_array = Split(billeder_filer_liste,",")
Kan jeg på en eller anden måde oprette en variabel med alle billedernes bredde?
Det skulle gerne se således ud:
For Each fil In mappe.Files If InStr(fil.Name,".gif") Then billeder_filer_liste = billeder_filer_liste & "," & fil.Name billeder_bredde_liste = billeder_bredde_liste & "," & [bredde på billede] End If Next
Kan det lade sig gøre? Hvis ja, hvordan? Hvis nej, kan det løses på anden vis?
for at få bredden på et billede (af enhver slags) skal du have et billede-komponent installeret... dvs en DLL... det er langt de færreste online-servere som har denne kopmonent installere da den kræver serverkræfter...
du kan på din egen hjemmeserver installere image-components med nemhed... og derved få billedernes bredde...
En mindre fejl med at elementerne var sat til Nothing i starten :D
Jeg har kun serverplads på et webhotel, så kan man vel ikke installere den image-component, du snakker om?
Kan man ikke få fat i breden med funktionen "gfxSpex"? Jeg så at den blev brugt i et andet spørgsmål her på eksperten, men fattede ikke lige noget af det....
her er der et script som læser alle filer i mappen C:\ -kan ændres
og fortæller info om billederne..
<% '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '::: ::: '::: This routine will attempt to identify any filespec passed ::: '::: as a graphic file (regardless of the extension). This will ::: '::: work with BMP, GIF, JPG and PNG files. ::: '::: ::: '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '::: Based on ideas presented by David Crowell ::: '::: (credit where due) ::: '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '::: blah blah blah blah blah blah blah blah blah blah blah blah ::: '::: blah blah blah blah blah blah blah blah blah blah blah blah ::: '::: blah blah Copyright *c* MM, Mike Shaffer blah blah ::: '::: blah blah ALL RIGHTS RESERVED WORLDWIDE blah blah ::: '::: blah blah Permission is granted to use this code blah blah ::: '::: blah blah in your projects, as long as this blah blah ::: '::: blah blah copyright notice is included blah blah ::: '::: blah blah blah blah blah blah blah blah blah blah blah blah ::: '::: blah blah blah blah blah blah blah blah blah blah blah blah ::: ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '::: ::: '::: This function gets a specified number of bytes from any ::: '::: file, starting at the offset (base 1) ::: '::: ::: '::: Passed: ::: '::: flnm => Filespec of file to read ::: '::: offset => Offset at which to start reading ::: '::: bytes => How many bytes to read ::: '::: ::: '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: function GetBytes(flnm, offset, bytes)
Dim objFSO Dim objFTemp Dim objTextStream Dim lngSize
on error resume next
Set objFSO = CreateObject("Scripting.FileSystemObject")
' First, we get the filesize Set objFTemp = objFSO.GetFile(flnm) lngSize = objFTemp.Size set objFTemp = nothing
fsoForReading = 1 Set objTextStream = objFSO.OpenTextFile(flnm, fsoForReading)
if offset > 0 then strBuff = objTextStream.Read(offset - 1) end if
if bytes = -1 then ' Get All!
GetBytes = objTextStream.Read(lngSize) 'ReadAll
else
GetBytes = objTextStream.Read(bytes)
end if
objTextStream.Close set objTextStream = nothing set objFSO = nothing
end function
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '::: ::: '::: Functions to convert two bytes to a numeric value (long) ::: '::: (both little-endian and big-endian) ::: '::: ::: '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: function lngConvert(strTemp) lngConvert = clng(asc(left(strTemp, 1)) + ((asc(right(strTemp, 1)) * 256))) end function
function lngConvert2(strTemp) lngConvert2 = clng(asc(right(strTemp, 1)) + ((asc(left(strTemp, 1)) * 256))) end function
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '::: ::: '::: This function does most of the real work. It will attempt ::: '::: to read any file, regardless of the extension, and will ::: '::: identify if it is a graphical image. ::: '::: ::: '::: Passed: ::: '::: flnm => Filespec of file to read ::: '::: width => width of image ::: '::: height => height of image ::: '::: depth => color depth (in number of colors) ::: '::: strImageType=> type of image (e.g. GIF, BMP, etc.) ::: '::: ::: '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: function gfxSpex(flnm, width, height, depth, strImageType)
dim strPNG dim strGIF dim strBMP dim strType strType = "" strImageType = "(unknown)"
For Each f1 in objFC if instr(ucase(f1.Name), ".GIF") then response.write "<tr><td>" & f1.name & "</td><td>" & f1.DateCreated & "</td><td>" & f1.Size & "</td><td>"
if gfxSpex(f1.Path, w, h, c, strType) = true then response.write w & " x " & h & " " & c & " colors" else response.write " " end if
response.write "</td></tr>"
end if
Next
response.write "</table>"
set objFC = nothing set objF = nothing set objFSO = nothing
Ja, det var den, jeg snakkede om, men fatter stadig ikke så meget af den. Har selv løst mit problem med javascript.... Men du gjorde da et forsøg, så du må godt få pointene :D
Synes godt om
Ny brugerNybegynder
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.