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

タイトル ビットマップのメモリーエラー
投稿日: 2012/05/22(Tue) 13:29
投稿者ymi
いつも御掲示板を参考にさせて頂いています。

現状でどうしても煮詰まっている件について記載させていただきます。
実施したいことは、バイナリ形式のビットマップイメージを
ビットマップに変換して、変換後のビットマップ画像データを
指定サイズでトリミングしたいのですが、メモリーエラーとなって
しまいます。 色々とネットにて検索いたしましたが自分の不徳により
こちらの掲示板に投稿させていただきました。

下記にサンプルを添付させていただきます。

画像の取り扱いは素人なので困っております。
見当違いの事があるかも解らないですが、よろしくお願いいたします。
開発環境:VB2010


Dim bmp1 As Bitmap = New Bitmap("T0.bmp")

' ビットマップをバイナリに変換
Dim mms1 As System.IO.MemoryStream = New System.IO.MemoryStream
bmp1.Save(mms1, System.Drawing.Imaging.ImageFormat.Bmp)
Dim dats() As Byte = mms1.GetBuffer()
mms1.Close()

Dim sPointX As Integer = 100
Dim sPointY As Integer = 100
Dim ePointX As Integer = 100
Dim ePointY As Integer = 100
Dim BitKit1 As Rectangle = New Rectangle(sPointX, sPointY, ePointX, ePointY)
Dim Kit1 As Bitmap = bmp1.Clone(BitKit1, bmp1.PixelFormat)

' ビットマップ表示
Me.PictureBox1.Image = Kit1     ' 表示は正常。

' バイナリをビットマップに変換
Dim mms2 As System.IO.MemoryStream = New System.IO.MemoryStream(dats)
Dim bmp2 As Bitmap = New Bitmap(mms2)
mms2.Close()

' ビットマップ表示
Me.PictureBox2.Image = bmp2     ' 表示は正常。

sPointX = 50
sPointY = 50
ePointX = 50
ePointY = 50
Dim BitKit2 As Rectangle = New Rectangle(sPointX, sPointY, ePointX, ePointY)
' 下記で「System.OutOfMemoryException はハンドルされませんでした。 
' メモリが不足しています。」と表示されます。
Dim Kit2 As Bitmap = bmp2.Clone(BitKit2, bmp2.PixelFormat)

' ビットマップ表示
Me.PictureBox3.Image = Kit2     '

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

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