You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In Image::from_pgm, the test for a valid pgm file is wrong.
image_data = string.gsub(/^(P5)\s([0-9]+)\s([0-9]+)\s([0-9]+)\s/, '')
if $1 != 'P5'
raise ArgumentError, "input must be a PGM file"
end
The PGM spec says that any string starting with # is a comment. The test file I tried, failed to load, as it had a comment line between the P5 line, and the width line.
i.e. it looked like
P5
# test_qrcode.pgm
300 300
255
...
Would match this file, but shift $2 to $3, $3 to $4 and $4 to $5, even if there was no comment line. Of course, it is possible to have multiple comment lines, at any point, but having a comment after the P5 seems to be standard.
The text was updated successfully, but these errors were encountered:
I would like to keep the PGM parser as small as possible. I'll settle for ignoring that single comment in that single place. (Sure it doesn't catch all comments, but that change makes it slightly less wrong than it is now, and it fixes things for you.) I'd happily merge a PR with that regex change and a test covering a comment-bearing PGM file in spec/zbar/image_spec.rb.
I found it when I manually converted screen shots, which are png files, to pgm, using Graphics Converter. I was testing that I was generating pgm correctly. The goal was to generate Y800, using Chunky-png, so a screen shot of a qrcode could be processed by zbar (which now works).
In Image::from_pgm, the test for a valid pgm file is wrong.
The PGM spec says that any string starting with # is a comment. The test file I tried, failed to load, as it had a comment line between the P5 line, and the width line.
i.e. it looked like
P5
# test_qrcode.pgm
300 300
255
...
Would match this file, but shift $2 to $3, $3 to $4 and $4 to $5, even if there was no comment line. Of course, it is possible to have multiple comment lines, at any point, but having a comment after the P5 seems to be standard.
The text was updated successfully, but these errors were encountered: