• ベストアンサー

IrfanviewにおけるPGMファイル出力について

Irfanviewでjpeg画像をグレースケール化し、PGMファイルで出力しました。出力方法はバイナリではなく、アスキーにしました。すると、1行あたり16個の整数がずうっと下のほうまで続いているのですが、ところどころ、改行コードが抜け落ちたのか、32個の整数が並ぶ行が発生します。これは何か意味があるのでしょうか?それとも単なる処理落ちなのでしょうか?もし処理落ちなのだとしたら、ちゃんと全ての行が16個ずつの値になるようにできないでしょうか?あとでプログラム処理するときに不便です。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

IrfanViewの挙動についてはわかりませんが http://netpbm.sourceforge.net/doc/pgm.html PGMの仕様から言えば、1行あたりのデータ数に決まりはありません。 (70文字以内、というのはありますが)

lemonpanda
質問者

お礼

272×80行の数字行列を処理していたのですが、どうやら16列×17行並んで272個、その次の行に移るときには改行コードが入らないみたいです。 つまり、272個文字を書くごとに、改行コードが抜け落ちているとわかりました。修正プログラムを作ったので何とかなりそうです。 pgmファイルの仕様で70文字以内、と云うのは知りませんでした。ありがとうございました。

関連するQ&A

  • C言語の質問です

    http://www1.axfc.net/uploader/Sc/so/74915.c このppmからpgmにグレースケール化するプログラムをppmからppmのグレースケール化のプログラムに書き換えたのですができた画像を開こうとすると途中で処理が終わっているとエラーメッセージでてグレースケール化した画像が三枚並んでいる画像が出ます。修正箇所があれば教えてください。 ちなみに作ったプログラムは上のプログラムからPGMの部分を消してppmに書き換えています。 またグレースケール化の方法は 重み付けした輝度の計算で処理したいと思っています。こちらの修正もお願いします (0.299 * R + 0.587 * G + 0.114 * B)

  • 複数ファイルで、それぞれの行数をカウントして出力する

    こんにちは。 お世話になります。 早速ですが、やりたい事は・・・ 複数のデータファイルを用意しています。 それぞれに異なるデータが入っています。 そして、そのファイル毎の行数を取得し、かつそれぞれにタイトルをつけたいのです。 例) 1.txtには10行分→出力する時には「帽子:10個」 data2.txt→8行→出力する時には「植木鉢:8個」 abc.txt→30行→→出力する時には「チョコレート:30個」 ・ ・ ・ そしてそれを改行しながら出力 例) 帽子:10個 植木鉢:8個 チョコレート:30個 ・ ・ ・ ひとつのファイルに対して行数を得るのは下記の通りできました。 $f_URL="1.txt";//ファイル指定 $line=file($f_URL);//配列に $gyosu=count($line);//要素数をカウント echo "帽子:$gyosu個";//出力 ひとつひとつやればできないこともないのですが、同じ処理をやるので何かまとめて処理できる方法があるんだろうなぁ・・・とは思ったのですが・・・行き詰まりました(汗) あとできればデータファイルの内容はいじらないように使いたいのです。(1.txtの1行目にタイトルをいれておく...などは避けたいのです) もし何かよい方法があればご教授&アドバイスよろしくお願い致します。

    • ベストアンサー
    • PHP
  • DBからPHP出力された画像の情報取得について

    Linux、PHP4.3.11、MySQLの環境でPHPスクリプトの作成を試行しています。 MySQLの BLOB型 に格納された画像バイナリを呼び出してそのまま出力するスクリプトを作成し、同スクリプトから出力された画像ファイルのサイズや種別情報を「getimagesize()」で取得しようとしているのですがうまく行きません。 画像出力の処理は、MySQLからバイナリのデータを読み出して HTTP HEADER をつけてそのまま出力する処理を行っています。 // 画像出力処理 <?php $image = /* DBからバイナリを取得する処理 */ header("Content-type: image/jpeg\n\n"); echo $image; exit(); ?> 上のスクリプトをWEBブラウザで呼び出すと画像を表示する事ができます。 また、<img src="画像出力スクリプトのURL">としてHTML中に記述しても画像を表示できます。 しかし、getimagesize() で画像情報を取得しようとしても False となり、画像の構成情報を取得できません。 // 画像情報取得処理 <?php $src = "http://画像出力スクリプトのURL"; var_dump(getimagesize($src)); exit(); ?> $src にローカルにある実ファイル画像を指定した場合( "./hoge.jpeg" )や 他のWEBサーバ上にある画像ファイルを指定した場合( "http://よそのサーバURL/hoge.jpeg" )等は画像情報をちゃんと取得できます。 画像出力用のスクリプトで行わなければならない処理が何か不足しているのでしょうか。 原因となりそうな物が分かる方がいらっしゃいましたらご教示お願いいたします。

    • ベストアンサー
    • PHP
  • VBAを使って、一部バイナリデータを読み書き

    VBAを使って、一部バイナリデータを読み書きする方法 を教えてください。 あるファイルが1行目から30行目までが普通のASCII形式でデータが書き込まれており、 31行目以降はバイナリデータとなっています。 また、30行目にheader endと書かれています。 このデータを30行目までは文字列データとして抽出し、 31行目以降はバイナリデータとして抽出して、 少し内容を書き換えてから、最初と同様に 30行目までをASCII、31行目以降をバイナリデータとして出力したいのですが どのようにすれば良いですか? http://homepage2.nifty.com/kasayan/vba/binary.htm http://hanatyan.sakura.ne.jp/vbhlp/Binary.htm バイナリデータの読み込み方は上記のページに書かれてあるのですが いずれも、ファイルをまるごとバイナリ形式として読み込むもので 一部だけバイナリとして読み込むことはできないようです。 どなたかどうすれば良いか教えてください。

  • アクロバットの再現性

    マック間でイラストレーター作成のデーターを アクロバット5.0でのより良い再現性を 教えて下さい。 やり方は、イラストレーター作成書類をアウトラインかけてEPS保存し〔写真はeps、バイナリ保存〕。 それをフォトショップでグレースケール、300dpiで開き 画像を統合して、フォトショップpdfで保存します。 エンコーディング→jpeg、画質8。 それを送っているのですが、文字の再現性がいまいちです。 また、出力線数や拡大・縮小はアクロバットでは できないものでしょうか。 よろしくお願いします。

  • ファイルの文字列の処理の質問

    今ファイルに対して文字列の処理をしています。 あるファイルに対して一定の文字列を検索して、その検索したい文字列が なければ、その一行をファイルに出力したいですが、手元にwindowsバージョン のgrep.exe で実現すると考えています。 しかし、検索したいファイルは、文字列が入ってない行があります。 そのため、検索したい文字列が存在しない行は、改行だけの行を結果として 出力されています。改行だけの行を除きたいですが、どうすればいいか? ファイルのsjisです。例えば、内容としては、以下のようになっています。 aiiiiii ballllll fafafa 777777 とするファイルがあります。そのファイルに対して、aという文字が入ってない行を 取りたいですが、実際にgrep -v "a" ファイル名 でやると、777777の行とすべて 改行だけある行が取られてました。 777777だけをとる方法がありますでしょうか?

  • pyExceleratorで作ったファイルのエラー

    多量な実験データ(.txt)を処理する為にpythonでxls形式で出力するファイルを作成しているのですが、生成されたファイルを開けるとデータが失われた可能性があるとのエラーが出るのです。 処理自体は実験データの最大値のみを出力するというシンプルなもので、 それをxls形式で出力するということが目的です。 一旦結果をテキストで出力したものをExcelでインポートした結果と、エラーの出るファイルを比べても数値等の欠損は見られません。 なぜこのようなエラーが出るのか、 どういった値が欠落しているのかが分からず気持ちが悪いです。 処理するデータに日本語は入っていません。 A列、1行目にはそれぞれ名前が入っており、n行m列にはそれぞれnとmを比べた結果の数値が入っているというデータです。 元のテキストはスペース区切りで改行がはいっておりますので、改行が原因かなと思ったのですが改行を削除しても同じエラーが出ます。 pyExceleratorで作ったファイルでエラーが出たことがある方や、 そのエラーの原因が分かった方がいらっしゃいましたら、 その時の事を教えていただけないでしょうか。 他に必要な情報等がありましたら随時補足させていただきます。 つたない文章での質問となり分かりにくいかと思いますが、どうぞよろしくお願いいたします。

  • StringBufferで改ページ処理を行うには?

    StringBufferに格納した文字列を、Printableで出力する処理を作成しています。 その際、StringBufferに「\n」を格納すると、改行させることが出来るのですが(例1)、 「\f」を格納して改ページをさせようと思っても、中点(・)が印字されてしまい、 上手く改ページさせることが出来ません(例2)。 StringBufferで改ページをさせるには、どうしたら宜しいのでしょうか? ※例1 【PGM】 StringBuffer sb = new StringBuffer(); sb.append("改行"); sb.append(\n); sb.append("テスト"); 【出力結果】 改行 テスト ※例2 【PGM】 StringBuffer sb = new StringBuffer(); sb.append("改ページ"); sb.append(\f); sb.append("テスト"); 【出力結果】 改ページ・テスト ※ \は実際には「バックスラッシュ」です

    • ベストアンサー
    • Java
  • TEXTAREAで改行するとついてくるゴミコード

    自分で作成したCGIで送信されてきたフォームデータを 取得し、テキストファイルに出力するような処理をやってまして、 その送信されるデータにはTEXTAREAで入力されたデータもあります。 CGIの処理後に出力されたファイルをテキストエディタで開こうしたら、 テキストエディタでオープン不正であるようなメッセージが表示されました。 自分でもその原因についてバイナリエディタで調べたところ、 TEXTAREAで改行されたところに不正なゴミコードが混ざっているようでした。 改行コードは16進数でいうと「0D0A」のはずですが、バイナリファイルで みたところ改行部分が「0D0D0A」となっているようで、どうやら「0D」の余計な コードがテキストエディタで開いた時、エラーを発生させている原因となってるようです。 CGIの処理内でこの「0D」コードを削除する処理をいれるのもいいんですが、 なにか簡単にこの「0D」というゴミコードを取り除きたいのですが、 ナニかいい方法ないでしょうか?

    • ベストアンサー
    • CGI
  • MacでCSV出力 Catで読み込むと0行

    Microsoft Excel for Mac 2011を利用しています。 Mac OSは10.10です。 CSV出力をして、Kシェルで処理をしたいのですが、うまくCSVファイルを読み込めないようです。 cat hoge.csv |wc -l をしてみると 0行になっています。 改行関連がおかしいのか、どうかわからない状態で、前にすすめません。 手打ちテキストを作成したシェルに読み込ませるとうまくいくのですが。。 どなたかご教授お願いいたします。