当APIはブラウザ上で実行すると、指定したrefCodeの画像ファイルを表示します。
VBからXMLHTTPオブジェクトを使って画像を取得する方法があれば教えて下さい。
URL:
http://www.xxx.xxxxx.xxxt/xxxxxxData/public/getFile.do?refCode=
GPSxml.Open "POST", "http://www.xxx.xxxxx.xxxt/xxxxxxData/public/getFile.do?", False
GPSxml.setRequestHeader "Content-Type", "image/jpeg"
GPSxml.send ("refCode=" & strCODE)
frmGamen.imgtest.Picture = ????
> 当API
??
> VBからXMLHTTPオブジェクトを使って画像を取得する方法があれば教えて下さい。
.responseBody プロパティか .responseStream プロパティで。
(前者は、Byte配列型、後者は IStream型で結果を返します)
回答ありがとうございます。
Byte配列型で行い一度ファイルに書き出してそのファイルをLoadPictureする形でやってみます。
responseStream の方でやってみました。
'--------
Option Explicit
Private Declare Function OleLoadPicture Lib "oleaut32" ( _
ByVal S As IUnknown, ByVal L As Long, ByVal R As Long, _
ByRef G As Long, ByRef P As IPicture) As Long
Private Sub Command1_Click()
Dim O As Object
Set O = CreateObject("MSXML2.XMLHTTP.4.0")
O.Open "GET", Text1.Text, False
O.send
If O.Status <> "200" Then
Set Image1.Picture = LoadPicture()
MsgBox "取得失敗", vbExclamation, O.statusText
Exit Sub
End If
Dim G(3) As Long
G(0) = &H7BF80980
G(1) = &H101ABF32
G(2) = &HAA00BB8B
G(3) = &HAB0C3000
Dim E As Long
Dim P As IPicture
E = OleLoadPicture(O.responseStream, 0&, 1&, G(0), P)
If E = 0 Then
Set Image1.Picture = P
Else
On Error Resume Next
Err.Raise E
MsgBox Err.Description, vbExclamation, "エラー:" & CStr(Err.Number)
On Error GoTo 0
End If
End Sub
# サイトによっては、XMLHTTP を使わず、直接 OleLoadPicturePath API で
# 画像化しても良いかも。
魔界の仮面弁士さま。
連絡おくれてもうしわけありません。
回答ありがとうございました。上記ソース参考になりました。
ぶじ画像ファイル編集することができました。
ツイート | ![]() |