Avatar billede nythjem Nybegynder
23. februar 2005 - 16:35 Der er 5 kommentarer og
2 løsninger

Billede bredde og højde

Hej Alle!

Jeg har følgende udemærket understående script, der trækker alle billeder ud af en mappe. Jeg har brug for, at at kende de enkelte billeders bredde og højde.

Jeg havde forestillet mig noget lignende.

"<a href=""java script:setValue('"& Image_Array(I) &"');""><center>" &_
"<img src="""& image_directory &"/"& Image_Array(I) &""" border=""0"" width=""" & image.width & """ height=""" & image.height & """ align=""center"">" &_

Men hvordan gør man?

<%
dim image_directory, image_height, image_width, Images_pr_Page, Images_Horizontal
image_directory = "..\billeder"
image_height = "90"
image_width = "125"
Images_pr_Page = "9"
Images_Horizontal = "3"

dim count_image, image, Image_Array
Set directory=server.createobject("scripting.filesystemobject")
Set allfiles=directory.getfolder(server.mappath(image_directory))

For each image in allfiles.files
  if instr(1,"bmp,gif,jpg,png,jpeg,tif",lcase(directory.GetExtensionName(image.name)))>0 then

    Image_Array = Image_Array + image.Name & ","

    count_image = count_image +1
  End if
Next

dim Current_Page, Total_Pages, Total_Images, Page_Name

Page_Name = request.servervariables("script_name")
Total_Images = count_image

Current_Page  = request.querystring("page")
If Current_Page = "" or Current_Page = "0" then
    Current_Page = "1"
end if

Total_Pages = (Total_Images/Images_pr_Page)

if Total_Pages > int(Total_Pages) then
    Total_Pages = int(Total_Pages) + 1
end if

Image_Array = split(Image_Array,",")

dim First_Image, Last_Image
First_Image = ((Current_Page-1)*(Images_pr_Page))+1
If First_Image =  "0" then
    First_Image = "1"
end if
Last_Image = (Total_Images-First_Image)

if cint(Last_Image) > cint(Images_pr_Page) then
    Last_Image = round(First_Image-1) + round(Images_pr_Page)
else
    Last_Image = (First_Image + Last_Image)
End if

Response.Write "<table border=""0"" cellspacing=""5"" cellpadding=""0"" width=""400"">" & vbCrLf

    dim Count_Image_Prints, td_width
    Count_Image_Prints = 0

    td_width = int(100 / Images_Horizontal)

    dim I
    For I = (First_Image-1) to (Last_Image-1)
        Count_Image_Prints = Count_Image_Prints + 1

        If int(Count_Image_Prints) = int("1") then
            Response.Write "<tr>" & vbCrLf
        end if

        Response.Write "<td width=""130"" height=""95"" align=""center"" valign=""middle"" style=""border: 1px solid #3399CC;"">" &_
            "<a href=""java script:setValue('"& Image_Array(I) &"');""><center>" &_
                "<img src="""& image_directory &"/"& Image_Array(I) &""" border=""0"" align=""center"" onload=""justerbill(this);"">" &_
            "</center></a>" &_
        "</td>" & vbCrLf

        If int(Count_Image_Prints) = int(Images_Horizontal) then
            response.write "</tr>" & vbCrLf
            Count_Image_Prints = 0
        end if
    Next

    response.write "</tr></table>" & vbCrLf &_
    "<br><table border=""0"" cellspacing=""2"" height=""18"" cellpadding=""1"" style=""border: 1px solid #3399CC;"">" & vbCrLf &_
    "<tr>" & vbCrLf &_
        "" & vbCrLf

        For I = 1 to Total_Pages

            If NOT Cint(Current_Page) = Cint(I) then

            If I = 18 OR I = 36 OR I = 54 OR I = 72 Then
            ivcremark = "</tr><tr>"
            Else
            ivcremark = ""
            End If
                response.write "<td bgcolor=""#eaeaea"" align=""center"">&nbsp;<a href="""& Page_Name &"?Item=002&page="& I &""">" &_
                    I &_
                "</a>&nbsp;</td>" & ivcremark
            else
                response.write "<td bgcolor=""#FFFFFF"" align=""center"">&nbsp;<u>"& I &"</u>&nbsp;</td>"
            end if
        Next

        response.write "</td>" & vbCrLf &_
    "</tr>" & vbCrLf &_
"</table>" & vbCrLf
%>
Avatar billede eagleeye Praktikant
23. februar 2005 - 17:09 #1
Hvis du har en billede komponent ASPImgae eller imgSize kan du bruge en af dem til at finde højde og bredde. Har du ikke det kan man bruge FSO og nogle funktioner til at hente høje og brede på filerne.
Avatar billede nythjem Nybegynder
23. februar 2005 - 17:14 #2
Hej Eagleeye!

Jeg har AspImage samt AspJpeg. Men lad os nu lige antage, at min mappe består af gud ved hvor mange billeder, vil det så ikke være hårdt hele tiden at skulle slå komponenterne op for at finde billedets størrelse?

Hvordan gør jeg via Fso, det er jo det jeg bruger til at hive billedet ud med..
Avatar billede eagleeye Praktikant
23. februar 2005 - 17:37 #3
funktionerne til at findestørrelsen kan ses her:
http://www.4guysfromrolla.com/webtech/code/imgsz.asp.html

Nederst er der et afsnit 'Test Harness  og det er et styk kode som viser hvordan funktionen bruges. Du kan ligge funktionerne i en include fil hvis du syntes det fylder for meget i den fil du har.
Avatar billede mortency Nybegynder
23. februar 2005 - 17:49 #4
Lytter.
Avatar billede nythjem Nybegynder
25. februar 2005 - 08:46 #5
Hej Eagleeye!

Beklager sen respons. Jeg havde taget et kig på scriptet fra 4guysfromrolla tidligere i en af dine andre indslag, men problemet med det i forhold til det jeg havde var, at jeg skulle til at dele og splitte arrayen alt for meget.

Så jeg har faktisk i stedet valgt at hente billederne binært som thumbnails med hjælp fra AspJpeg (http://www.aspjpeg.com/manual_02.html)

Men tak for hjælpen, og læg lige et svar :) Og god weekend..
Avatar billede eagleeye Praktikant
25. februar 2005 - 15:00 #6
Ok her et svar :)

og god weekend.
Avatar billede nythjem Nybegynder
25. februar 2005 - 15:42 #7
I lige måde..
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