2016-10-08 5 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를 사용하여 이미지를 저장을 사용하고 있습니다.

PictureBox에서 이미지를 변환하여 흰색 배경을 투명하게 만들려고합니다.

+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을 위해 backColor를 투명하게 만듭니다.

myImage.MakeTransparent(backColor) 

편집 : 나는 당신이 소스 이미지가 투명이고 투명하게하기 위해 PictureBox을 갖고 싶어 새로운 세부 사항에서 알고있는 것처럼

. 투명 시스템이 계단식으로 연결되어 있지 않으므로 불행히도 WinForms을 사용하여이 작업을 수행 할 수 없습니다. picturebox의 BackgroundColor 속성을 투명하게 설정할 수 있지만, 생각하는 것과는 다르게 작동 할 것입니다. PictureBox 컨트롤의 빈 픽셀에는부모 컨트롤의 내용이 표시됩니다.

예를 들어, 피 크ure 상자 아래에 레이블이 있고 이미지에 투명한 배경을 설정하면; 라벨은 그림 상자의 상위 컨트롤이 아니기 때문에 표시되지 않습니다.

해결 방법은 대상 컨트롤의 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