Avatar billede jwulff Nybegynder
06. august 2007 - 19:52 Der er 7 kommentarer og
1 løsning

List billeder fra mappe med thumbnails

Hej Exp,

Jeg synes ikke rigtig jeg kan finde en kode der viser alle billeder fra en mappe, samt opretter thumbnails for at begrænse loading tiden.

Det eneste det skal gøre, er at udskrive billeder i mappen images, oprette thumbnail og gøre så man kan klikke på det.

På forhånd tak for hjælpen :)
Avatar billede langthjem Nybegynder
07. august 2007 - 00:06 #1
Du skal bygge det op sådan her:

Visning (F.eks. default.asp)
Brug FileSystemObject til at gennemgå alle filer i mappen.
Når du støder på en fil med typenavn jpg eller gif kalder du "image.asp" med filens sti som querystring. Kaldet skal ske som SRC i et <IMG>-tag.

Billede loader (F.eks. image.asp)
Du modtager en sti til et billede som querystring. Du bruger den sti til at åbne billedet med f.eks. AspImage eller AspJpeg. Det eneste output skal være binært billeddate.
Det er også i denne fil du skalerer billedet ned for at nedsætte download tiden.

Voila! Du har nu en thumbnail visning.
Avatar billede jwulff Nybegynder
07. august 2007 - 13:54 #2
Hej Langthjem,

Er det ikke muligt at få et link eller noget? - der burde være et sted hvor det er lavet.
Avatar billede jwulff Nybegynder
07. august 2007 - 14:35 #3
Jeg er kommet så langt her nu:

<%@ Language=VBScript %>
<% Option Explicit %>
<%
Const ImageFilePath = "images"

Dim objFSO
Dim objFolder
Dim objFile

Dim strFileName
Dim strFileExtension
Dim imgID

%>
<html>
<head>
  <title>ingen endnu...</title>
</head>
<body>

<table border="0">
<%
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(ImageFilePath))

imgID = 1

For Each objFile In objFolder.Files
    strFileExtension = LCase(Mid(objFile.Name, _
        InStrRev(objFile.Name, ".", -1, 1) + 1))

    If strFileExtension = "gif" Or strFileExtension = "jpg" Or strFileExtension = "jpeg" Then
        %>
        <tr>
            <td>
                <img id=<%=imgID%> class="thumbNormal" src="<%= ImageFilePath & "/" & objFile.Name %>" width=120>
            </td>
        </tr>

        <%

        imgID = imgID+1

    End If
Next

Set objFolder = Nothing
Set objFSO = Nothing
%>
</body>
</html>
Avatar billede jwulff Nybegynder
07. august 2007 - 14:37 #4
jeg har ASPimage
Avatar billede jwulff Nybegynder
07. august 2007 - 14:48 #5
Okay, går fremad nu... Har følgende thumbnail kode, men der kommer ikke noget billede på min alm. side.:

<%

FileName=request.querystring("FileName")

size=Cint(request.querystring("size"))

    Response.ContentType = "image/jpeg"
    '*** get width/height of original image
    Set Image = Server.CreateObject("AspImage.Image")
    Image.LoadImage "images/" & FileName
    ImageHeight = Image.MaxY
    ImageWidth = Image.MaxX
   
    Image.ImageFormat = 1
    Image.JPEGQuality = 80
   
if ImageHeight > size then
    NewHeight = Cint(ImageHeight*size/ImageWidth)
    NewWidth = size
    Image.ResizeR NewWidth,NewHeight
end if
    Response.BinaryWrite Image.Image
    Set Image = Nothing
%>
Avatar billede langthjem Nybegynder
08. august 2007 - 09:52 #6
Det ser faktisk ud til at være gjort rigtigt. Det eneste problem er at du ikke får sendt din path til thumb scriptet. Du skal ændre dit <IMG>-tags SRC til "<%=ImageFilePath & "?FileName=" & objFile.Name%>" eller noget lignende, du er jo nødt til at lade thumbnail scriptet vide hvilken fil.

I dit thumbnail script skal du bruge en absolut path til Image.LoadImage.
Avatar billede jwulff Nybegynder
13. august 2007 - 17:20 #7
Så lykkedes det.. Smid et svar :)
Avatar billede langthjem Nybegynder
14. august 2007 - 09:37 #8
Et svar smidt!
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