dポイントプレゼントキャンペーン実施中!

教えてください。
環境:VB6 sp5 winXP sp2
行いたいこと(アウトプット):BMPファイルを作成して、HDDなどに保存したいです。
入力情報(インプット):VBコード内で配列としてピクセル情報を持っています。1000*1000の画像で、変数ImageData(1000000)の中に256階調でデータが入っています。
配列内のデータを元に1枚の画像(bmp形式)を作成これを保存したいです。
わかるかた、教えてください。
サンプルコードなどの場所などを添付していただければ幸いです。
よろしくお願いします。
質問の意味がわからなければ、お知らせください、追記します。

A 回答 (2件)

当方、未熟者なので答えになるか分かりませんが一応…



用意するオブジェクト
Command1
Picture1

コード
Private Sub Command1_Click()

Dim ImageData(1000000) As String
Dim XPos As Long
Dim YPos As Long
Dim i As Long
Dim j As Long
Dim ColorR As Integer
Dim ColorG As Integer
Dim ColorB As Integer

Picture1.AutoRedraw = True
Picture1.Width = 15067
Picture1.Height = 15067
Picture1.ScaleMode = 3
Picture1.DrawWidth = 1
Picture1.ScaleHeight = 1000
Picture1.ScaleWidth = 1000

For i = 0 To 999999
ColorR = Int((255 * Rnd))
ColorG = Int((255 * Rnd))
ColorB = Int((255 * Rnd))
ImageData(i) = Hex(ColorR) & Hex(ColorG) & Hex(ColorB)
Next

For YPos = 0 To 999
For XPos = 1 To 999
Picture1.PSet (XPos, YPos), "&H" &   ImageData(j)
j = j + 1
Next
Next

Call SavePicture(Picture1.Image, "C:\test.bmp")

MsgBox ("処理終了")

End Sub

ImageData(1000000)は16進数カラーコードなのでしょうか?
ランダムコードにしちゃいましたけど…
あとX方向にピクセル配置してX方向が1000ピクセル到達したらY方向に1ピクセルずれて、またX方向に1000ピクセルにしてます。

保存はCall SavePicture(Picture1.Image, "C:\test.bmp")でしてます。

Cドライブにtest.bmpのファイル名で作成してます。

ちなみに処理にものすごく時間がかかります。
私のPCがポンコツPCだからかもしれません。

答えになってなかったらすいません。
    • good
    • 0

すいません。


さきほど回答したtype0000です。
一部間違いがありました。
修正箇所は下記のとおりです。

誤:For XPos = 1 To 999

正:For XPos = 0 To 999
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!