HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0115
うぼーD&Dで画像を読み込ませる方法2解決


うぼー

リンク

2012/1/15(Sun) 23:07:56|NO.44312

画像を処理するプログラムのことで質問です。
picloadで指定された画像を読み込ませる方法なら完成しているのですが、
実行ファイルのアイコンにD&Dすることで動くプログラムにしたいです。
いまは 
buffer 1:picload "a.jpg"

と実行ファイルと同じフォルダに置かれた a.jpg を読み込んでいます。 http://lhsp.s206.xrea.com/command/dirinfo.html http://www.geocities.co.jp/Playtown-Yoyo/6130/hsp/hsp-drag-file.html を見てdirinfo(4)をpicloadで使えばできそうだったのですが、エラー13でできませんでした。 使ったのはこれです。
buffer 1:picload "dirinfo(4)"

自分がやりたい事は、D&Dした画像ファイル(jpg、bmp、gifの三種類)をpicloadに読み込ませることです。
画像ファイルは、実行ファイルが置かれていないフォルダでも大丈夫で、
尚且つファイル名は自由(拡張子はちゃんとしたもの)が読み込めるようにしたいです。
また、D&Dするファイルのファイルパスにスペースが入っていると勝手に"が入ってしまうOSの仕様があるそうで、
それも解決できるようにして欲しいです。
ファイルパスをfilepathと言う変数に入れて
if peek(filepath, ) = '"' : getstr filepath, filepath, 1, '"'

で取れるようですが、肝心のファイルパスの取得方法(=picloadに読み込ませる方法)がわかりません。 よろしくお願いします。



この記事に返信する


check

リンク

2012/1/15(Sun) 23:51:54|NO.44313

上記のURLに書かれている方法は実行ファイルに
ファイルをドロップして実行されたときに渡される文字列を取得する方法だな。

#include "shell32.as" #define TRUE 1 #define FALSE 0 #define NULL 0 #define DROP_BUFFER_SIZE 256 #define WM_DROPFILES 0x0233 DragAcceptFiles hwnd, TRUE // ファイルのドラッグを受け入れる oncmd gosub *event_WM_DROPFILES, WM_DROPFILES stop *event_WM_DROPFILES hDrop = wparam DragQueryFile hDrop, 0xffffffff, NULL, 0 fileCount = stat // ドロップされたファイル数 sdim dropBuffer, DROP_BUFFER_SIZE // ドロップされたファイル名を格納するバッファ repeat fileCount DragQueryFile hDrop, cnt, varptr(dropBuffer), DROP_BUFFER_SIZE mes dropBuffer loop DragFinish hDrop return
ほい。
これを応用すれば画像を読み込ませることは簡単だろう。



うぼー

リンク

2012/1/16(Mon) 00:07:35|NO.44314

check様ありがとうございます!
使い方がよくわからなかっので
repeat fileCount
DragQueryFile hDrop, cnt, varptr(dropBuffer), DROP_BUFFER_SIZE mes dropBuffer loop
の間にソースを全部入れてpicloadにdropBufferを入れたら見事に動きました!
せっかく複数入力の出来るのものが1つだけになってしまいましたが…

今度時間があるときにじっくり調べてみます。
ありがとうございました



ONION software Copyright 1997-2023(c) All rights reserved.