Привет всем я пытаюсь получить мои изображения, чтобы выглядеть красиво и гладко (сглаживание) с помощью маски для того, чтобы сделать круглое изображение, как вы видите ниже:Vb.net изображение маски делает гладкой по краям
Исходное изображение выглядит следующим образом:
маска для изображения выше выглядит следующим образом (красный является цветом маски, чтобы вынуть):
Это работает, но это дает мне эти не очень приятные неровные края вокруг него. Маска является .png, а также само изображение является .png.
код я использую, чтобы сделать маску это:
picNextTopic1.Image = Image.FromStream(wc.OpenRead(anAPI.wallOrgPostImage(keying).Replace("{width}", "50").Replace("{height}", "50"))) 'Download the image from the website.
picNextTopic1.Image = ApplyMask(New Bitmap(picNextTopic1.Image), New Bitmap(My.Resources.mask), Color.Red) 'Apply mask to the downloaded image above.
Функция ApplyMask заключается в следующем:
Public Function ApplyMask(ByVal bImg As Bitmap, ByVal bMask As Bitmap, ByVal maskColor As Color) As Image
Dim wImg As Integer = bImg.Width
Dim hImg As Integer = bImg.Height
Dim wMask As Integer = bMask.Width
Dim hMask As Integer = bMask.Height
Dim intMask As Integer = maskColor.ToArgb
Dim intTransparent As Integer = Color.Transparent.ToArgb
Using fpImg As New FastPix(bImg)
Using fpMask As New FastPix(bMask)
Dim pixelsImg = fpImg.PixelArray
Dim pixelsMask = fpMask.PixelArray
For y As Integer = 0 To Math.Min(hImg, hMask) - 1
For x As Integer = 0 To Math.Min(wImg, wMask) - 1
Dim iImg As Integer = (y * wImg) + x
Dim iMask As Integer = (y * wMask) + x
If pixelsMask(iMask) = intMask Then
pixelsImg(iImg) = intTransparent
End If
Next
Next
End Using
End Using
Return bImg
End Function
который использует FastPix нашел here.
Любая помощь, чтобы сгладить это было бы здорово! Благодаря!
UPDATE код прозрачной форме, которая у меня есть:
Public Sub InitializeMyForm()
BackColor = Color.Plum
TransparencyKey = BackColor
End Sub
Вместо бинарной маски, вы могли бы сделать альфа-маску, которая имеет плавный переход между разоблачены и замаскированы. – djv