質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

3130閲覧

受信したデータを画面に表示する

TAKAYASU

総合スコア146

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2016/07/04 06:59

編集2016/07/04 07:26

いつもお世話になってます。

C言語でTCP/IP通信を行い、受信したデータを画像として画面上に表示するというプログラムを作っています。
socket通信については調べると参考になるものがたくさんあり、作成することができたのですが。

その先の受信したデータをどのようにすれば表示できるのか、調べ方が悪いのか出てきませんでした。

Bitmapなるものも検索でHITしましたが、どうもC言語では見つからず・・・・
何か参考になるサイト等教えていただけるとありがたいです。。。。

補足:
検索ワードは
・c言語 socket バイナリ 画像
・c言語 socket バイナリ 変換
・c言語 tcp バイナリ 描画
・c言語 tcp bitmap
等です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2016/07/04 07:19

検索ワードを貼ってみてください。
guest

回答1

0

ベストアンサー

こんにちは。

とりあえず通信と画像処理の間に直接の関係はありませんので、「C言語 ビットマップ」等で検索した方が良いです。

しかし、その前にTCP/IPで送信しているデータは画像データでしょうか?
また、そのフォーマットは分かってますか?
分かっていれば、そのフォーマットに従ってTAKAYASUさんがお使いのOSが取り扱うことができる「画像フォ-マット」へ変換して下さい。そして、OSがもつAPIを呼び出して表示することが可能な筈です。

つまり、TCP/IPで送信しているデータがなんなのか?とTAKAYASUさんがお使いのOSが分からないと具体的な方法は見つからないと思います。他にもCコンパイラは何を使っているかも記載された方が良いです。
後、画像処理を全部自力で開発することは非常に手間がかかりますので、なんらかの画像処理ライブラリを使うことをお勧めします。ここでもよく質問がありますが、OpenCVはなかなか良いですよ。無料ですし。

投稿2016/07/04 08:13

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TAKAYASU

2016/07/04 08:28

返信ありがとうございます。 今回はストリーミング配信している映像を送受信するというものでして コーデックはMJPEG、表現としてはストリームを送受信?であってますでしょうか 送信側・受信側のロジックは一通り作れたのですが、その受信したバッファをjpgやbmp等の何かしらの形式に変換しようとしたところ、手順がわからず躓いていました。 (変換せずともそのまま表示できるのであればそれでも問題ない) 自力では非常に手間がかかるということは全く知らなかったので、何か助けになるものを探してみます。 OpenCV・・・よくネットでみかけるあれですね・・・ちょっとそちらも見てみます。
Chironian

2016/07/04 08:40

ストリーミング配信ですか。なかなかハードかも知れません。 ストリーミング配信ということは、各種ヘッダやコントロール情報が画像データと共に送られてきている筈です。それらのフォーマットが分からないと画像データとコントロール情報を分離できないです。 そのフォーマットが分かっていれば自力で分離して、mjpegデコーダにかければ画像を回復できる筈です。 後、その画像を表示するプログラムも必要です。これも意外にたいへんです。 もし、そのストリーミング配信方式をサボートしている再生プログラムがあれば簡単ですが。 http://www.yasutomo57jp.com/2010/09/12/opencv%E3%81%8B%E3%82%89%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%AEvideoapi%E3%82%92%E5%88%A9%E7%94%A8/
TAKAYASU

2016/07/04 08:49

ヘッダとデータを分離ですか・・・・ 確か別コーデックでやったとき大変な思いをした覚えがあるので、あまりやりたくはないですね(汗 当時はC#でしたが今回はC言語ですので使えるものも違って尚更ちんぷんかんぷんになりそうです^^;; URLのそれはhttpプロトコルのURLを直接入力してるのですね、とてもわかりやすいです。 サポートしているといえば・・・・SDLというのもその類に入るのでしょうか・・・・?
Chironian

2016/07/05 00:42

SDL(http://sdl2referencejp.osdn.jp/)は知らなかったのですが、かなり強力なライブラリのようですね。これでデコードと表示はできそうです。 SDL_netはストリーミング・データをマルチプラットフォームで受け取るのに使えそうです。でも、残念ながら、上記ページを見る限り、ストリーミングのフォーマットを解析して画像データとコントロール情報を分離する機能はなさそうです。
TAKAYASU

2016/07/05 01:15

分離する機能はないのですね。。。 分離さえ出来てしまえばあとはSDLに任せれるみたいなので デコード・表示はそちらを使ってみたいと思います。 長い間質問に答えていただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問