tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Susieプラグインの使用
投稿日: 2012/11/07(Wed) 15:49
投稿者わかな
こんにちは。vb.net(2005)にてSusieプラグインを使用した画像表示を行なおうと考えています。
ある参考サイトの記載を少し変えて以下の記述を行なったのですが、どうも上手くいきません。

Susieプラグインは「ifgif.spi」を使用。gifファイルはvbで元々扱えますが
これが成功してから他の画像拡張子を試そうと考えております。
また、とりあえずは画像表示ではなく画像サイズの取得から行なってみようとしております。

ご教授お願いできないでしょうか。

Option Explicit On
Public Class Form1
    Private Structure BITMAPINFOHEADER
        Dim biSize As Long
        Dim biWidth As Long
        Dim biHeight As Long
        Dim biPlanes As Integer
        Dim biBitCount As Integer
        Dim biCompression As Long
        Dim biSizeImage As Long
        Dim biXPelsPerMeter As Long
        Dim biYPelsPerMeter As Long
        Dim biClrUsed As Long
        Dim biClrImportant As Long
    End Structure

    Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal dest As BITMAPINFOHEADER, ByVal Source As Long, ByVal length As Long)
    Private Declare Function LocalFree Lib "kernel32" (ByVal MemHandle As Long) As Long
    Private Declare Function LocalLock Lib "kernel32" (ByVal MemHandle As Long) As Long
    Private Declare Function LocalUnlock Lib "kernel32" (ByVal MemHandle As Long) As Long
    Private Declare Function GetPicture Lib "ifgif.spi" (ByVal FileSTR As String, ByVal OffSet As Long, ByVal Mode As Integer, ByVal MemoryHandle As Long, ByVal InfoHandle As Long, ByVal CallBack As Long, ByVal CallBackLong As Long) As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim BitMapMemoryHandle As Long
        Dim BitMapInf As Long
        Dim LocalMemoryBMP As Long
        Dim LocalMemoryInf As Long
        Dim BitMapHeader As BITMAPINFOHEADER

    'test.gifと言う名称の256×256サイズの画像 
        GetPicture("D:\test\test.gif", 0, 0, BitMapMemoryHandle, BitMapInf, 0, 0)

        LocalMemoryBMP = LocalLock(BitMapMemoryHandle) 'メモリのロック
        LocalMemoryInf = LocalLock(BitMapInf)

        MoveMemory(BitMapHeader, LocalMemoryBMP, Len(BitMapHeader)) 'メモリ移動

    'とりあえずは画像表示ではなくサイズを取得してみようとしてますが、取得数値は0になってしまう。
        Dim size As Integer = BitMapHeader.biHeight
        Debug.Print(test)

        LocalUnlock(BitMapMemoryHandle) 'メモリロック解除
        LocalUnlock(BitMapInf)

        LocalFree(BitMapMemoryHandle) 'メモリ開放
        LocalFree(BitMapInf)
    End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。