2016-10-08 22 views
-1

白い背景の画像には問題があります。白い背景を削除するか、画像を透明にするにはどうすればいいですか? Pictureboxイメージを透明VB.Netに変換する

は、今のところ私はこのコード

Dim _ms3 As New System.IO.MemoryStream() 
pbSignCapture.Image.Save(_ms3, System.Drawing.Imaging.ImageFormat.Png) 
Dim _arrImage3() As Byte = _ms3.GetBuffer() 
_ms3.Close() 

また_arrImage3を使用して画像を保存を使用しています。

ピクチャボックス内の画像を変換して、白い背景を透明にしたいとします。

+0

をmysqlのタグを削除してください... – theBugger

+0

@theBugger申し訳ありませんが私のミスは、MySQLのコードを入れていないが、私は今それを編集しました。 – TKGhoul

答えて

1

Bitmapクラスを使用して画像ファイルを開くことを検討してください。

Dim myImage as new Bitmap("C:\Image file.bmp") 

そしてあなたがMakeTransparent()MakeTransparent(Color)メソッドを使用することができます。

は背景ピクセルの色を取得します。

Dim backColor As Color = myImage.GetPixel(1, 1) 

myBitmapための背景色を透明にしてください。

myImage.MakeTransparent(backColor) 

EDIT:

私はあなたがソースイメージが透明であるところPictureBoxを透明にする必要がありする新しい詳細から理解しています。残念ながら、WinFormsを使用すると、透明システムがカスケードしていないため、これは不可能です。あなたはpictureboxのBackgroundColorプロパティを透明に設定できますが、これはあなたが考えるかもしれないものとは異なった動作をするでしょう。 PictureBoxコントロールの空きピクセルには、親コントロールのの内容が表示されます。

たとえば、ピクチャーボックスの下にラベルがあり、画像に透明な背景を設定すると、ラベルはピクチャボックスの親コントロールではないため、表示されません。

回避策は、宛先コントロールのpaintイベントで手動でイメージを描画することです。

多くのコントロールを含むフォームがあり、ボタン(名前はbtn)に広告イメージを描画するとします。あなたは、フォームのPaintイベントをこのように上書きする必要があります:

Private Sub form_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles form.Paint 
    Dim g As Graphics = e.Graphics  
    g.DrawImage(Image.FromFile("C:/yourimage.png", btn.Location.X, btn.Location.Y) 
End Sub 
+0

'myBitmap'は' PictureBox'ですか? – TKGhoul

+0

申し訳ありませんでした。 – theBugger

+0

試してみましたが、カードに印刷していました。また、データベースにpngとして保存しています。 – TKGhoul

関連する問題