did you see the bit at the bottom about using 5 lines of perl script to do
the same thing? ...looked good to me. It returns:

800;600;JPG or 213;100;GIF

...you can then use the Split() function to get the width, height and type.

HTH
Sam Thompson
----------------------------------------------
2cs Communications Ltd
http://www.2cs.com
[EMAIL PROTECTED]
T: 01473 622263
F: 01473 622515
-----------------------------------------------
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: "ActiveServerPages" <[EMAIL PROTECTED]>
Sent: Thursday, August 22, 2002 4:05 PM
Subject: Re: Image Properties Difficult Question.


> 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.unsub%%
>


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

Reply via email to