webForumDet fria alternativet

Genererad sida för visning av bilder

ASP

0 svar · 319 visningar · startad av mantralord

Medlem sedan sep. 200711 inlägg
Frågan#1

Ok jag har nu kommit fram till en punkt där jag har en länk, när man klickar på länken genereras länkar till olika kategorier av bilder, vid klick på dessa länkar skickas argument tillbaka till samma sida och alla filer i katalogen som länken syftar på listas som thumbnails vilka är länkade till den riktiga bilden. Detta innebär i praktiken att jag helt enkelt bara kastar upp nya kataloger/bilder och länkar/sidor innehållande dessa genereras automatiskt. Jättesmidigt! Men nu vill jag gå ett steg längre och slippa det eviga "resizandet" av bilder innan jag lägger upp dom, så.... Vad jag behöver är ett sätt att vid genereringen av sidorna skapa thumbnails automatiskt från käll-bilden samt ändra storlek på käll-bilderna så dom inte blir alltför stora.
Pseudo-kod för vad jag vill göra:

För alla bilder i katalogen...
1. Plocka ut en bild (kan redan göra)
2. Om storlek != 1024x768 lr 768x1024
2.1. Ändra storlek på denna bild till 1024x768 alt. 768x1024.
2.2. Spara om bilden.
3. Om ingen thumbnail finns
3.1. Skapa en thumbnail med storlek 60x45
3.2. Spara på given plats
4. Ge thumbnailen en länk till original-bilden

Detta innebär alltså att nya bilder som läggs upp fixas till enligt mönstret som jag vill ha dom. Gamla bilder skippas helt enkelt.

Hittade ett script för generering av thumbnails som var typ 3 A4 långt vilket kändes lite konstigt, så svårt ska det ju inte behöva vara =)

Koden so far:

Dim fso, rootFolder,subFolders				
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set rootFolder = fso.GetFolder(Server.MapPath("/gfx/pics/"))
Set subFolders = rootFolder.SubFolders				

For Each folder in subFolders
  Response.write("<a class='photo_link' href='photos.asp?folder=" 
      &Server.URLEncode(folder.Name) & "'>" & folder.Name & "</a><br>") 
next
Set fso=nothing
Set rootFolder=nothing
Set subFolders=nothing

Dim fs,fo,x,folder
folder = Request.Querystring("folder")
if folder="none" then
    Response.Write("")
else
    Set fs=Server.CreateObject("Scripting.FileSystemObject")
    Set fo=fs.GetFolder(Server.MapPath("/gfx/pics/"&folder))
    Response.Write("<h3>"&folder&"</h3>")
end if

if folder="none" then
    Response.Write("")
else
for each x in fo.files
    Response.write("<a class='thumbail_link'  
      href='gfx/pics/"&folder&"/"&x.Name& "' target='_blank'>" & 
        "<img class='thumbnail_link'   src='gfx/pics/"&folder&"/thumbs/thumb"   
           &x.Name&"'/>"&"</a>")
next
end if
Set fo=nothing
Set fs=nothing

Obs: lite fulkodat jag vet men det blir en senare fråga med uppsnyggning =)
Obs2: Första gången man kommer till sidan är "folder" satt till "none" (hittade ingen info om returvärdet från Request.Querystring om argumentet inte var satt så löste det så istället)

EDIT: Bah indenteringen funkade inte på min pseudo-kod, lade till numrering istället.

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)