Hallo liebes Forum,
Leider habe ich (man glaubt's kaum) ein kleines Problemchen. Und Zwar folgendes: Der Benutzer gibt eine Bild-URL ein, worauf sich jenes Bild herunterlädt.
Bei diesem Bild sollten alle Pixel, welche Im Rot- Grün- oder Blauwert (RGB) zwischen 250 und 254 liegen, auf reines Weiss (also 255) korrigiert werden.
Damit könnte man, wenn ich mich nicht täuscht, dem Verpixelten, fast-weissen Rand (siehe Anhang) vorbeugen, da nur reines Weiss transparent wird.
Der angehängte Screenshot zeigt eine Form (product1), in welche das "korriegierte" Bild als BackgroundImage zugewiesen würde. (Transparenz via TransparancyKey)
Doch leider verschwindet der Rand nicht und man findet noch jede Menge Pixel, die eigendlich hätten angepasst werden müssen. (z. B. 250,255,255).
Hier mein bisheriger Code:
Ich wüsste wirklich nicht, wo der Fehler liegt.
Über Antworten Würde ich mich sehr freuen.
Gruss
Leider habe ich (man glaubt's kaum) ein kleines Problemchen. Und Zwar folgendes: Der Benutzer gibt eine Bild-URL ein, worauf sich jenes Bild herunterlädt.
Bei diesem Bild sollten alle Pixel, welche Im Rot- Grün- oder Blauwert (RGB) zwischen 250 und 254 liegen, auf reines Weiss (also 255) korrigiert werden.
Damit könnte man, wenn ich mich nicht täuscht, dem Verpixelten, fast-weissen Rand (siehe Anhang) vorbeugen, da nur reines Weiss transparent wird.
Der angehängte Screenshot zeigt eine Form (product1), in welche das "korriegierte" Bild als BackgroundImage zugewiesen würde. (Transparenz via TransparancyKey)
Doch leider verschwindet der Rand nicht und man findet noch jede Menge Pixel, die eigendlich hätten angepasst werden müssen. (z. B. 250,255,255).
Hier mein bisheriger Code:
VB.NET-Quellcode
- Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
- My.Computer.Network.DownloadFile(TextBox1.Text, Application.StartupPath & "/product1.jpg") 'download image product1.Show() 'Form zeigen
- Dim imgTemp As Image imgTemp = Image.FromFile("product1.jpg")
- Dim bmpTemp As New Bitmap(imgTemp.Width, imgTemp.Height, Imaging.PixelFormat.Format32bppArgb) Using gfx As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bmpTemp) gfx.DrawImage(imgTemp, 0, 0) End Using
- Dim oColor As System.Drawing.Color Dim bRed As Byte Dim bGreen As Byte Dim bBlue As Byte
- For i = 0 To bmpTemp.Height - 1 For j = 0 To bmpTemp.Width - 1
- ' get color oColor = bmpTemp.GetPixel(j, i)
- bRed = oColor.R bGreen = oColor.G bBlue = oColor.B
- If bRed < 255 And bRed > 250 Then If bGreen < 255 And bGreen > 250 Then If bBlue < 255 And bBlue > 250 Then
- Console.WriteLine("R:" & CStr(bRed) & " G:" & CStr(bGreen) & " B:" & CStr(bBlue)) 'gefundene Pixel ausgeben
- bmpTemp.SetPixel(j, i, Color.White) End If End If End If
- Next Next
- product1.BackgroundImage = bmpTemp 'modifiziertes image als Hintergrund setzen
- Me.Hide()
- End Sub
Ich wüsste wirklich nicht, wo der Fehler liegt.
Über Antworten Würde ich mich sehr freuen.
Gruss
Umfangreicher Converter im Browser: CloudConvert
Temporäre e-Mail: temp-mail
Text-Übersetzter: DeepL
Kostenloser Webspace: bplaced
Temporäre e-Mail: temp-mail
Text-Übersetzter: DeepL
Kostenloser Webspace: bplaced