That is the other code sample that David told me about but it calculates 
dimensions incorrectly for .GIF's and craps out on .JPG's totally. 

At least the one I am using works for .GIFS

Thanks Sam.


Quoting Sam Thompson <[EMAIL PROTECTED]>:

> http://p2p.wrox.com/archive/proasp_codeclinic/2000-04/8.asp
> 
> HTH
> Sam Thompson
> ----------------------------------------------
> 2cs Communications Ltd
> http://www.2cs.com
> [EMAIL PROTECTED]
> T: 01473 622263
> F: 01473 622515
> -----------------------------------------------
> ----- Original Message -----
> From: "Craig" <[EMAIL PROTECTED]>
> To: "ActiveServerPages" <[EMAIL PROTECTED]>
> Sent: Thursday, August 22, 2002 3:27 PM
> Subject: Image Properties Difficult Question.
> 
> 
> > I'm using the script that Tim Fletcher recommended yesterday. The one you
> > told me about David (Penton) kept returning weird values for .GIF's and
> > would not return anything for .JPG's.
> >
> > This script works perfectly for .GIF's (with a little modification I had
> > to add) but craps out on .JPG's. Part of the returned page is this:
> >
> > ----------------------------------------------------------------------
> > watercooler_bubbling2_md_wht.gif 10/10/01 12:48:34 PM 4117 76 x 120 128
> > colors
> > virtualwatercooler1502.gif 10/10/01 12:48:34 PM 3257 150 x 90 128 colors
> > header.jpg 11/02/01 4:19:12 PM 92472 Microsoft VBScript runtime error
> > '800a0005'
> >
> > Invalid procedure call or argument: 'asc'
> >
> > /imgsz.asp, line 91
> > -----------------------------------------------------------------------
> >
> > It always errors out when it reaches the first .JPG in the folder.
> >
> > Here is the code below with line 91 marked.
> >
> > <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> >
> > <HTML>
> > <HEAD><TITLE></TITLE>
> > </HEAD>
> > <BODY><%
> >   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
> >   ':::                                                             :::
> >   ':::  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)
> > LINE 91    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
> >
> >      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
> >
> >            'Response.Write "lngPos = " & lngPos & "<BR><BR>"
> >            'Response.Write "strBuff = " & strBuff & "<BR><BR>"
> >
> >            if asc(mid(strBuff, lngPos, 1)) < 192 or asc(mid(strBuff,
> lngPos, 1)) > 195 then
> >            value = (mid(strBuff, lngPos + 1, 2))
> >            'Response.Write "value = " & value
> >              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("/usr/local/apache/internaldev/images")
> >   Set objFC = objF.Files
> >
> >   response.write "<table border=""0"" cellpadding=""5"">"
> >
> >   For Each f1 in objFC
> >     if instr(ucase(f1.Name), ".GIF") OR instr(ucase(f1.Name), ".JPG")
> 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
> >
> >        'my code added to convert resulting image widths and heights to
> > something closely resembling pixel width
> >        'As some values (apparently random) are correct in pixels to begin
> > with, only those values that likely
> >        'need converting, those > 2000, are subject to the routine
> >        if w > 2000 then
> >        w = w/257
> >        end if
> >
> >        if h > 2000 then
> >        h = h/257
> >        end if
> >
> >
> >           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
> >
> >
> > %>
> > </BODY>
> > </HTML>
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >
> > Any suggestions please?
> >
> > Thanks so much.
> >
> >
> >
> >
> > ---
> > You are currently subscribed to activeserverpages as: [EMAIL PROTECTED]
> > To unsubscribe send a blank email to
> %%email.unsub%%
> >
> 
> 
> ---
> You are currently subscribed to activeserverpages as:
> [EMAIL PROTECTED]
> To unsubscribe send a blank email to
> %%email.unsub%%
> 





---
You are currently subscribed to activeserverpages as: [email protected]
To unsubscribe send a blank email to [EMAIL PROTECTED]

Reply via email to