#vb.net
#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, чтобы превратить белый фон в прозрачный.
Комментарии:
1. Пожалуйста, удалите тег mysql…
2. @theBugger Извините, из-за моей ошибки не был добавлен код mysql, но я отредактировал его сейчас.
Ответ №1:
Рассмотрите возможность использования Bitmap
класса для открытия файлов изображений.
Dim myImage as new Bitmap("C:Image file.bmp")
А затем вы можете использовать методы MakeTransparent () или MakeTransparent(Color):
Получить цвет пикселя фона.
Dim backColor As Color = myImage.GetPixel(1, 1)
Сделайте BackColor прозрачным для myBitmap.
myImage.MakeTransparent(backColor)
Редактировать:
Как я понимаю из новых деталей, вы хотите, чтобы a PictureBox
было прозрачным, когда исходное изображение прозрачно. К сожалению, это невозможно WinForms
, поскольку система прозрачности не является каскадной. Вы можете установить BackgroundColor
для свойства PictureBox значение transparent , но это будет действовать иначе, чем вы думаете. Свободные пиксели элемента управления PictureBox будут отображать содержимое родительского элемента управления.
Это означает, что если у вас есть, например, метка под вашим picurebox и установите прозрачный фон для изображения; метка не будет отображаться, потому что она не является родительским элементом управления picturebox.
Обходной путь заключается в том, чтобы вручную нарисовать изображение в paint
случае целевого элемента управления.
Предположим, у вас есть форма с множеством элементов управления, и вы хотите нарисовать рекламное изображение поверх кнопки (с именем btn). Вам нужно будет переопределить событие рисования формы таким образом:
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
Комментарии:
1. есть ли
myBitmap
PictureBox
?2. Извините, это была опечатка
3. пробовал, но не работает, потому что я печатаю на карточке и сохраняю ее в формате png в базе данных
4. Вы должны отредактировать вопрос и уточнить, чего вы хотите достичь
5. мне так жаль, что я не очень хорошо говорю по-английски, но я пытаюсь. смотрите мой отредактированный пост, моя ошибка, сэр