• ベストアンサー

バイナリデータで表示or再生するにはどうしたらいいか

WindowsAPIで画像ファイルや音楽ファイルをバイナリデータとして読み込んで表示、再生するにはどうしたらいいでしょうか?MCI関係やLoadImageを使ってやるとなるとファイルを指定したりリソースとして取り込まないと表示されないと思うので質問しました。 プラットフォームはMicrosoft Visual Studio.NET2003です。  よろしくお願いします。

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

  • ベストアンサー
回答No.2

 こんばんは。  APIでは有りませんが、ダイレクトミュージックを使用するのも良さそうです。  「Direct Music Interface」  http://msdn.microsoft.com/ja-jp/library/ms807174(en-us).aspx  「IDirectMusicLoader8::GetObject()」  http://msdn.microsoft.com/ja-jp/library/ms809373(en-us).aspx  「DMUS_OBJ_MEMORYフラグ」  http://msdn.microsoft.com/ja-jp/library/ms808229(en-us).aspx

dotneer
質問者

お礼

  DirectXを使用した方法ですね。DirectXでできるなら実装して作ってもいいと思っています。DirectXはまだ初心者レベルなので十分参考になります。

その他の回答 (1)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

ビットマップイメージならCreateDIBSection()でHBITMAPリソースを確保してバイナリデータを書き込んでいけばよいのではないかと思います。 http://msdn.microsoft.com/ja-jp/library/cc428334.aspx 音楽ファイルについても似たような方法はあるかと思います。

dotneer
質問者

お礼

ありがとうございます。 CreateDIBSection()でHBITMAPリソースを確保してバイナリデータを書き込んでいけばいいんですね。 バイナリデータからどうするか悩んでいました。

関連するQ&A

  • DBD::Pg-1.49 のバイナリ

    Postgres SQL との連携のプログラムを動かしたいのですが、DBD::Pg がセットアップできずに困っています。 ReadMe を見ると Microsoft Visual Studio .NET 2003 と Microsoft Visual C++ Toolkit 2003 でコンパイルが必要みたいなのですが、その環境が私のパソコンにはありません。 DBD::Pg-1.49 のバイナリをお持ちの方はいますか?

    • ベストアンサー
    • Perl
  • [C言語、Win32API] 音楽を途中から再生する

    Visual C++ 6.0 でWindowsアプリケーションプログラミングをしています。 音楽(mp3形式)を再生するのは高レベルMCIまたは中レベルMCIで出来るのですが、曲を途中から再生する、ということは可能なのでしょうか? もし、やり方があれば、教えていただけると有難いです。 よろしくお願いします。

  • memcmp バイナリデータの比較方法

    ------------------------------------ Visual Studio 2008 pro VC++ ------------------------------------ 基本的な質問で申し訳ないのですが、memcmp()などでバイナリデータとの比較方法について教えてください。 例えばバイナリファイルを開き、その先頭から10バイト分が特定のバイトコードであるかを調べ用とした場合、fread()で10バイト分読み込んだバッファーをmemcmpで比較すればよろしいのでしょうか? また、その際に比較対象のバイトコードはどのように指定したらよいのでしょうか? --------------------------------- 例:比較対象のバイトコードが0xFFFFFFFFFFFFFFFFFFFFの場合 fread( szBuffer, 1, 10, fp ); memcmp( szBuffer, ???, 10 ); ---------------------------------

  • バイナリ内へのファイルの内包

    .Netで開発したプログラムからVBScriptを実行したいと考えています。 しかしEXEファイルとVBScriptファイルを一緒に配置したくありません。このような場合、.Netバイナリ内にVBScriptファイルを内包することは可能でしょうか? 可能であればその方法を教えてください。 開発環境:Visual Studio 2003 使用言語:Visual Basic OS:Windows XPです。 よろしくお願いします。

  • cgiで表示するhtmlページ内でバイナリ画像を出力したい

    cgiで表示するhtmlページ内でバイナリ画像を出力したい 「CGI 画像出力」でググったページで下記のコードがありました。 下記コードは、 Content-typeをimage/gif等にして バイナリを print すれば表示される という書き方になっていると思いますが、 content-typeがtext/html のページ内でバイナリをprintした場合 バイナリが文字列としてグシャァァァと表示されてしまいます。 ------- $view = 'aaa.jpg'; print "Content-type: image/jpeg\n\n"; #コンテンツタイプを指定する open IMGG,"$view"; #ファイルハンドル IMGGに画像ファイルを読み込む binmode (IMGG); #画像なのでバイナリモードに設定する print <IMGG>; #ファイルハンドルを画面に書き出す close (IMGG); #ファイルハンドルを閉じる exit; ------- content-typeがtext/htmlの状態でバイナリの画像を表示するには どうすればよいのでしょうか? cgiを2つ用意して、上記のコードを img src=~~.cgi という形で 呼び出すしかないのでしょうか?

    • ベストアンサー
    • Perl
  • 【デコード】バイナリーデータを文字列にしたい。

    いつもお世話になっています。 いろいろ調べたのですが、これといった回答が見つからなかったので質問させて頂きます。 今回も皆様の知恵をお貸し下さい。 環境 Microsoft Visual Studio .NET 2003 WindowsXP Microsoft .NET Framework 1.1 表題にも書きましたが、バイナリーデータを文字列として変換したいです。 System.Text.Encoding.GetStringを使用しようとしましたが、思うようにいきませんでした。 他の物が何かないかとネットで調べ、Bas64と言うのが引っかかりましたが、これは全く違うものでした。 例:SJISの30というデータを文字列に戻したい場合にどうすればよいのか。 行き詰ってしまいましたので、質問した次第です。 宜しくお願い致します。

  • バイナリーの画像データを読み込む。

    データベースをサイベース社のAdaptive Server Anywhre 7と いうのを使用していて、そのDBのテーブルに、long binaryで画像データ の定義を切ってデータをバイナリで保存してあります。 (もとはBMPの画像をバイナリに変換している) 上記のバイナリデータをVBのフォーム上(イメージ)に表示させるには どのようにしたらいいのでしょうか? もちろん、Loadpicture句を使用するのでしょうが、通常はパスを切ったり して使用すると思うのですが。。 VB始めたばかりでまったく想像つきません。どうか教えてください! 別記:上記サイベースのDBで10回程度連続でDBを読み込みに行くと エラーになるのですが、DB上でそのような回数の指定があるのでしょうか? それとも、ハード的な問題なんでしょうか?いままでそのような経験が ありましたら対策等教えてください。お願いします!

  • バイナリモードとは?

    インフォシークでHPを作っていますが、 gooやYahooでは成功していた画像の表示ができません。 ヘルプを読んでみると、「ファイルがこわれていませんか?」 とか「ファイル名が違ってませんか?」とか 「バイナリモードで転送して下さい」とあるのですが、 とりあえず「バイナリモード」がわからないのです。 教えてgooで過去の質問を探ってみると、 「バイナリモードで転送しないとファイルがこわれる」などと あったのですが、それはどういうことでしょうか? ファイル名はJPGの部分を大文字でも小文字でも変更して試してみたのですがダメでした。 ので、ファイル名の方は関係ないとは思います・・・ ちなみに、他の無料HPスペース(イースター)でも同じように画像の表示ができません。 どうか教えていただきたいです。よろしくお願いします。

  • 固定長ファイルのバイナリ表示と編集ができるエディタを探しています

    指定バイト数で折り返して表示する固定長ファイルに対して、 バイナリ表示と編集ができるエディタを探しています。 通常のバイナリエディタだと、16文字分を1行として表示しますが、 それを任意で指定したいです。 用途はCOBOLで作成した固定長ファイルを表示するためです。 フリーソフトでそのようなソフトはありませんでしょうか。 昔、NECの『日本語ファイルメンテナンス』という ソフトを使ったことがあります。(有償ですが)。

  • C++でバイナリデータの扱い方

    以下のプログラムで接続先からバイナリデータを取得しているのですが coutで出力しても画面に何も表示されません。 ------------------------------------------------------ /*include部分は省きます*/ std::string bin; //1 clx::http session(clx::uri::encode(ip), 80); //2 session.get(clx::uri::encode(param)); //3 bin = session.body(); //4 std::cout << bin << std::endl; //5 ------------------------------------------------------ 上記プログラムを空ファイルにリダイレクトしバイナリエディタで見たら ちゃんとデータは書き込まれていました。 5行目を以下のように変えても空欄が出力されただけで文字は表示されませんでした std::cout << std::hex << bin << std::endl; しかし以下のようにすると文字数は表示されました。 std::cout << bin.length() << std::endl; やりたいこととしてはphpのpack()、unpack()的な部分です。 例えば 値をフォーマットを指定してバイナリデータとして出力 $val=pack("L", 35); とか バイナリデータを変数から指定バイト分取り出して10進数で画面に出力 $bin=(バイナリデータ); $val=unpack("c",$bin); echo(sprintf("%d",$val)); です。 バイナリの扱いはリトルエンディアンです。 ご教示お願いしますm(__)m

専門家に質問してみよう