On 12 Mar 2007 at 9:34, Tom Phoenix wrote:

> On 3/12/07, Beginner <[EMAIL PROTECTED]> wrote:
> 
> > When I ask for the filehandle position (tell) it is reporting the
> > pointer as being a few bytes further along than I expect it to be.
> 
> > binmode(FH);
> >
> > while (<FH>) {
> 
> If it's a binary file, you shouldn't read it by "lines", which is what
> this does. You should probably use the read function instead; that
> will let you specify how many bytes to read at a time. (And is a while
> loop the right construct for the operation you're performing?)

Obviously not. I fthink this is more what I should be using to read 4 
bytes at a time:

while (read FH, $buf, 4) {

> >         if ($_ =~ /\xFF\xC0/) {  # Start of frame header.
> >                 print "Found start of frame at $start\n";
> 
> Where did you put a value into $start?

Yes some over zealous editing on my part. I was trying to snip out 
all the irrelevant stuff and removed 
                $start = tell FH;

> Finally, it looks as if you're looking into the data of a jpeg/jfif
> file. Isn't there a module that will help you do what you want without
> mucking around in the raw bytes?

I must admit Tom, you are good. I am indeed looking for a the jpeg 
Start Of Frame marker. When I started writing the last post I did do 
a preamble about re-inventing the wheel but that got chopped too.

What I am tring to do is find the x and y dimension of a jpeg which 
can be found in the first few bytes of the header. ImageMagick or 
similar would do this but I am trying to help a friend who has to get 
the dimension so he can work out the uncompressed size of the file 
(x_axis x y_axis x 3 /1024 /1024). He doesn't have access to perl or 
c libraries and will have to read the file in byte by byte to 
determine the size of the file and it's a good lesson in binary 
reading for me too :-)

> Hope this helps!

You haven't failed yet!
 
> --Tom Phoenix
> Stonehenge Perl Training



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to