-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
バイナリ形式のPPM画像が読み込めない #11
Comments
多分2行目のコメント行消してみたら動いたりしないですかね |
バイナリを読み取るのに |
軽く |
waveモジュールとかの方は https://github.com/jiro4989/wave/blob/master/src/wave/waveread.nim |
テキストエディタからPPM画像のコメントを削除するとデータが破損してしまったものの、PNMモジュールの処理は正しく通るようになったのでコメント行によるものでした。 proc readPPM*(f: File): PPM =
let fileReadAll: string = f.readAll
var lines: string
for line in fileReadAll.replaceWhiteSpace.splitLines.mapIt(it.strip):
if not line.startsWith "#":
lines.add line & '\n'
let data = lines.mapIt(it.uint8)
f.setFilePos 0
validatePPM(data)
let fd = f.readLine
f.setFilePos 0
case fd
of ppmFileDescriptorP3:
result = f.readAll.parsePPM
of ppmFileDescriptorP6:
result = data.parsePPM
else: discard |
streamについては勉強になりました。ファイル読み書きの知識があまりないので勉強してみたいと思います🙇♂️ |
概要
readPPM
プロシージャを用いてバイナリ形式(P6)のPPM画像を読み込むと、次のようなエラーが発生する。/Volumes/momeeSSD/Developer/pien/src/pien.nim(32) pien /Volumes/momeeSSD/Developer/pien/src/pien.nim(26) rsv /Users/momiyama/.nimble/pkgs/pnm-2.1.1/pnm.nim(853) readPPMFile /Users/momiyama/.nimble/pkgs/pnm-2.1.1/pnm.nim(810) readPPM /Users/momiyama/.nimble/pkgs/pnm-2.1.1/pnm.nim(603) parsePPM /Users/momiyama/.choosenim/toolchains/nim-1.4.0/lib/pure/strutils.nim(1129) parseInt Error: unhandled exception: invalid integer: # [ValueError]
原因
バイナリを正しく読み取ることができていないのではないかと思います。
調べたところ、wavファイルのバイナリを読み取りたいという質問に対して、
stream
を用いると良いと回答されていました。現在、これを使って正しく読み取ることができないか確かめています。私はNimでファイルを扱うことに慣れていないので、もし何か思い当たる解決策がありましたら教えていただけると助かります。
読み取ろうとした画像(一部)
(長すぎるので省略)
The text was updated successfully, but these errors were encountered: