タイトル | : ビットマップのメモリーエラー |
記事No | : 10818 |
投稿日 | : 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 '
|