webForumDet fria alternativet

WIDTH och HEIGHT på bild med ASP?

ASP

7 svar · 218 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Frågan#1

Min ide till admin interfacet till shoppen jag byggt är att man ska kunna ha en bild på varan man ska kunna köpa. Min tanke är att man skriver in namnet på bilden, trycker "update" och admin sidan uppdateras med rätt bild samt med WIDTH och HEIGHT.

Jag har inte tillgång till nån upload komponent utan man får ladda upp filen manuellt med vanlig FTP men om man slipper hålla reda på WIDTH och HEIGHT är det en stor fördel.

tack,

/ jakob

------------------
Life is a bitch... and then you marry one.

Medlem sedan juni 200032 967 inlägg
#2

que?

om du skiter i height och width så blir ju allting bra :q

förstår inte alls frågan faktiskt...

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
det man inte minns har inte hänt.
hit med en berka!</A>

Medlem sedan juli 20003 825 inlägg
#3

Skiter i width och height??

Du är ingen pedant html hackare, det luktar lång väg... ;-) Seiröst, sidor laddas lite fortare om man har W + H med i koden... men man kanske ska skita i det...??

------------------
Life is a bitch... and then you marry one.

Medlem sedan juni 200032 967 inlägg
#4

det finns en komponent som heter imagesize, har jag för mig.

vet dock inte mer om den än så, men den låter ju applicerbar ;)

vet ju inte riktigt, eftersom jag alltid låter visual interdev slänga på w+h, eftersom den gör det automatiskt i html-koden.

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
det man inte minns har inte hänt.
hit med en berka!</A>

Medlem sedan juli 20003 825 inlägg
#5

Jag kollade dokumentationen för ASP och det står inget om den där. Förmodligen har vår ISP inte den och då gör vi så att vi skiter i W + H, det blir kanske bäst för alla.

Vi ska ha produkt utvärdering för en av våra kunder - Svensk Vodka. Det finns ingen komponent för det, typ productEvaluation 1.0?

------------------
Life is a bitch... and then you marry one.

Medlem sedan maj 2000269 inlägg
#6

Mannen!, du ska ju såklart ha samma W och H på alla bilder, jag menar hur ser det ut på en sida som listar artiklarna oxå är bilderna olika stora, hur dåligt ser inte det ut?. Men dock det finns en rutin som avgör W och H utan komponent, här får du kompis


<%
  ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  ':::                                                             :::
  ':::  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)"

     gfxSpex = False

     strPNG = chr(137) & chr(80) & chr(78)
     strGIF = "GIF"
     strBMP = chr(66) & chr(77)

     strType = GetBytes(flnm, 0, 3)

     if strType = strGIF then				' is GIF

        strImageType = "GIF"
        Width = lngConvert(GetBytes(flnm, 7, 2))
        Height = lngConvert(GetBytes(flnm, 9, 2))
        Depth = 2 ^ ((asc(GetBytes(flnm, 11, 1)) and 7) + 1)
        gfxSpex = True

     elseif left(strType, 2) = strBMP then		' is BMP

        strImageType = "BMP"
        Width = lngConvert(GetBytes(flnm, 19, 2))
        Height = lngConvert(GetBytes(flnm, 23, 2))
        Depth = 2 ^ (asc(GetBytes(flnm, 29, 1)))
        gfxSpex = True

     elseif strType = strPNG then			' Is PNG

        strImageType = "PNG"
        Width = lngConvert2(GetBytes(flnm, 19, 2))
        Height = lngConvert2(GetBytes(flnm, 23, 2))
        Depth = getBytes(flnm, 25, 2)

        select case asc(right(Depth,1))
           case 0
              Depth = 2 ^ (asc(left(Depth, 1)))
              gfxSpex = True
           case 2
              Depth = 2 ^ (asc(left(Depth, 1)) * 3)
              gfxSpex = True
           case 3
              Depth = 2 ^ (asc(left(Depth, 1)))  '8
              gfxSpex = True
           case 4
              Depth = 2 ^ (asc(left(Depth, 1)) * 2)
              gfxSpex = True
           case 6
              Depth = 2 ^ (asc(left(Depth, 1)) * 4)
              gfxSpex = True
           case else
              Depth = -1
        end select

     else

        strBuff = GetBytes(flnm, 0, -1)		' Get all bytes from file
        lngSize = len(strBuff)
        flgFound = 0

        strTarget = chr(255) & chr(216) & chr(255)
        flgFound = instr(strBuff, strTarget)

        if flgFound = 0 then
           exit function
        end if

        strImageType = "JPG"
        lngPos = flgFound + 2
        ExitLoop = false

        do while ExitLoop = False and lngPos < lngSize

           do while asc(mid(strBuff, lngPos, 1)) = 255 and lngPos < lngSize
              lngPos = lngPos + 1
           loop

           if asc(mid(strBuff, lngPos, 1)) < 192 or asc(mid(strBuff, lngPos, 1)) > 195 then
              lngMarkerSize = lngConvert2(mid(strBuff, lngPos + 1, 2))
              lngPos = lngPos + lngMarkerSize  + 1
           else
              ExitLoop = True
           end if

       loop
       '
       if ExitLoop = False then

          Width = -1
          Height = -1
          Depth = -1

       else

          Height = lngConvert2(mid(strBuff, lngPos + 4, 2))
          Width = lngConvert2(mid(strBuff, lngPos + 6, 2))
          Depth = 2 ^ (asc(mid(strBuff, lngPos + 8, 1)) * 8)
          gfxSpex = True

       end if
                   
     end if

  end function

  ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  ':::     Test Harness                                              :::
  ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  
  ' To test, we'll just try to show all files with a .GIF extension in the root of C:

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objF = objFSO.GetFolder("c:\")
  Set objFC = objF.Files

  response.write "<table border=""0"" cellpadding=""5"">"

  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.name, w, h, c, strType) = true then
          response.write w & " x " & h & " " & c & " colors"
       else
          response.write "&nbsp;"
       end if

       response.write "</td></tr>"

    end if

  Next

  response.write "</table>"

  set objFC = nothing
  set objF = nothing
  set objFSO = nothing

%>
Medlem sedan sep. 2000215 inlägg
#7

Självklart skall du ha samma storlek på bilderna precis som "Danmagnus".

Jag känner mig dock manad att tillrättavisa dig i den senare delen av inlägget...

"Life's a bitch who sucks... then you marry one who dosn't"

Ursäkta deta totalt värdelösa inlägg... ;)

Medlem sedan juli 20003 825 inlägg
#8

Tack för koden Danmagnus... men den var i längsta laget för en sån sak. Hela grejen är att det inte är jag som ska använda skiten och man kan ge sig fan på att bilderna kommer vara olika breda... höjden är inte lika noga.

Jag hade hoppats på något i stil med:

myWidth = getWidth("/bilder/trumpetsvamp.gif")
myHeight = getHeight("/bilder/trumpetsvamp.gif")

---
Vad gäller livet har du mer rätt än fel Andreas.

------------------
Life is a bitch... and then you marry one.

256 ms totalt · 4 externa anrop · v20260731065814-full.bd618308
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)