VC++でBMをJPEGに圧縮しようとしましたが、うまくいきません。

どなたかわたしが書いたソースを読んでどこが間違っているのかどなたか教えていただけませんでしょうか?
また改善点なども挙げていただくと助かります。

ソースはこちら
http://p01.sakura.ne.jp/jpeg_dct_console.cpp

BMPはこちら
http://p01.sakura.ne.jp/CGRADATION.BMP

このままでは、読むのに苦労されると思います、質問はどんどん下さい。

<注意>
このままコンパイルすると、次のようなことがおこります。

①変換元の画像の場所を、ソースの中に直接書き込んでいます。うまく動きません。

char* szsrcFileName = "C:\\Documents and Settings\\デスクトップ\\jpeg\\TestData\\BMP\\CGRADATION.BMP";

②途中経過を知るため、Cドライブ直下に勝手にファイルを作ります。
ofs.open("c:\\b.csv");

回答の条件
  • 1人50回まで
  • 登録:
  • 終了:2010/08/12 18:59:36
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:yamaneroom No.1

回答回数1040ベストアンサー獲得回数61

ポイント60pt

>①変換元の画像の場所を、ソースの中に直接書き込んでいます。うまく動きません。

パス名に日本語が含まれているから動かない。


JPEG 圧縮 展開

http://free.pjc.co.jp/JPEG1/index.html

id:iimmrr

回答いただいてありがとうございます。

このままでは、解決しなさそうなので、いったん質問を閉めさせて頂きます。

2010/08/12 18:59:09
  • id:guja
    このyamaneroomという方は、
    誰でもちょっと調べればわかる程度のことしか回答せず、
    質問内容をきちんと理解しているようでもなく、
    さらに見当外れな回答をしたりリンクだけ掲載するだけの人で、
    さらにたちの悪いことに一度回答したら投げっぱなしで一切フォローはないので、
    (ポイントを獲得できれば満足?)
    残念ながら期待するだけ無駄かと思われます。
  • id:cx20
    うまくいかない原因までは調査してないですが、ちょっと試してみた結果を書いておきます。

    先ほど、試しに、64x64 以外のサイズでファイル変換をしてみましたが、落ちました。
    何か所か biWidth と biHeight を間違えている個所があるようです。
    デバッグ実行して落ちる箇所を確認してみてください。

    あと、ビットマップのフォーマットの解析処理も誤りがあるように思われます。
    R(赤)→G(緑)→B(青) ではなく、
    B(青)→G(緑)→R(赤) ではないでしょうか?

    サンプルデータをもう少しシンプルなデータにして試してみてはいかがでしょうか?
    ・1x1ドットのサイズにする
    ・単色(1色)でテストする
    ・原色でテストする
    ・バイナリエディタでフォーマットを確認する
    など

    <参考情報>
    ■ bmp ファイルフォーマット
    http://www.kk.iij4u.or.jp/~kondo/bmp/index.html

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません