ページ 11

ネットの画像のURL指定で得た画像をゲーム内で使う。

Posted: 2013年8月18日(日) 19:59
by namari
なんだか今までの自分のプログラミングスキルでは想像もつかないのですが、
ネット上にあるアドレスを(例えばhttp://dixq.net/forum/images/02.png でC言語何でも質問掲示板の画像アドレスのように)
ゲーム上で指定したら、その画像をネットからとってきて、ゲームファイルに意図した名前で保存することはできるのでしょうか。
そこまでできるのなら、以降ゲームで使う方法は簡単だと思うのですが・・・。

ちなみにやりたいことは、SNSのアイコンを主人公にすることです。
アドレス名はhttp://.../images/user/○○○100.png (最後の○○100はアカウント名+アイコンサイズ:30.50も用意してある)

現在、使えるものはC言語、DXライブラリです。できない場合、何を使えばできそうかも教えてくださると幸いです。

Re: ネットの画像のURL指定で得た画像をゲーム内で使う。

Posted: 2013年8月18日(日) 20:10
by h2so5
DXライブラリの通信関係の関数を使ってHTTPリクエストを送信すれば画像データをダウンロードすることは可能です。
SNSの規約上そういった使い方がOKかどうかは疑問ですが。

[追記]
DXライブラリだけだとDNS名前解決ができないので、結局WindowsのAPIを直接使うか他のライブラリを併用する必要がありそうですね。

[追記]
↓ 隠し関数で名前解決用のAPIは存在するようです。

Re: ネットの画像のURL指定で得た画像をゲーム内で使う。

Posted: 2013年8月18日(日) 20:45
by みけCAT
バージョン3.10aのDxLib.hにこんな関数がありました。

コード:

extern	int			GetHostIPbyName(				const TCHAR *HostName, IPDATA      *IPDataBuf ) ;										// DNSサーバーを使ってホスト名からIPアドレスを取得する( IPv4版 )
extern	int			GetHostIPbyName_IPv6(			const TCHAR *HostName, IPDATA_IPv6 *IPDataBuf ) ;										// DNSサーバーを使ってホスト名からIPアドレスを取得する( IPv6版 )

Re: ネットの画像のURL指定で得た画像をゲーム内で使う。

Posted: 2013年8月18日(日) 20:51
by みけCAT
DXライブラリでHTTP通信をするには、
SetUseDXProtocol(FALSE);でDXライブラリのプロトコルを無効にしないといけません。
また、HTTPSへの対応は難しい/めんどくさいと思います。

Re: ネットの画像のURL指定で得た画像をゲーム内で使う。

Posted: 2013年8月18日(日) 20:54
by みけCAT
でも、素直にwininetを使うのが簡単ではないでしょうか?
HTTPの勉強をしたいなら別ですが。

Re: ネットの画像のURL指定で得た画像をゲーム内で使う。

Posted: 2013年8月18日(日) 23:20
by namari
>h2so5さん
ありがとうございます。
リファレンスを見ても通信関係はほとんど他PCとつないで対戦するようなものという印象を受けました・・・。

>みけCATさん
winInetを使うというのは、DXライブラリのように、
winInet.dllを入れて、新たな関数群を得るという認識でいいんでしょうか。
いまいち理解が及んでいなくてすみません。

Re: ネットの画像のURL指定で得た画像をゲーム内で使う。

Posted: 2013年8月19日(月) 08:26
by みけCAT
wininet.dllはWindowsに最初から入っているはずです。
参考
http://www.sm.rim.or.jp/~shishido/httpt.html
[search=google]wininet[/search]

Re: ネットの画像のURL指定で得た画像をゲーム内で使う。

Posted: 2013年8月21日(水) 01:38
by namari
>みけCATさん
まさにそれですね!
そこの関数名から調べて、なんとか完成にこぎつけることができました。
(というか、http://detail.chiebukuro.yahoo.co.jp/qa ... 2101389432
をほとんど使わせてもらいましたが・・・。)

ネットから情報を得るなんてこと出来ると思っていませんでしたが、
こんな方法でできるとは驚きです。

みなさん本当にありがとうございました。
特にみけCATさんは今回に限らずいつも本当に助かってます。感謝してもしつくせません。