Entwickler-Ecke

WinForms - Bilder verpixeln oder unscharf machen


Lihlu - Fr 17.03.17 11:39
Titel: Bilder verpixeln oder unscharf machen
Hallo zusammen,

für einen Spiele Abend versuche ich ein Program zu programmieren.

Es soll so funktionieren.

1. Man nimmt ein Bild und lädt es in die Picture Box hoch.
2. Nun soll das Programm das Bild unscharf machen (oder verpixeln).
3. Ein Timer soll langsam das Bild scharf stellen.

Sinn der Sache ist - wer als erster erät was es ist, hat gewonnen.

Leider hab ich überhaupt keinen Plan ob das mit C# überhaupt möglich ist.
Bestimmte Settings in einer PictureBox habe ich nicht gefunden.

Wie würdet ihr das ganze machen ?

Freue mich auf eure Antworten :D


Th69 - Fr 17.03.17 12:20

Hallo,

suchst du so etwas wie Normal Pixelate [https://www.programmingalgorithms.com/algorithm/normal-pixelate]? Das ergab meine Suche im Internet nach "C# pixelate image".

Hier noch weitere Links:
Creating Pixelated Images in C# [http://www.gutgames.com/post/Creating-Pixelated-Images-in-C.aspx]
Pixelate an image with c# [https://gist.github.com/superic/8165723]
What's a good pixelation algorithm in C# .NET? [http://stackoverflow.com/questions/1987054/whats-a-good-pixelation-algorithm-in-c-sharp-net]


Lihlu - Fr 17.03.17 12:23

Ja genau sowas suche ich :)

Wie bekomme ich dies auf eine PictureBox angewendet ? So wie es aussieht nimmt er aus dem Beispiel Code einen Pfad auf der Festplatte.

Vielen lieben dank


Th69 - Fr 17.03.17 12:27

Es verwendet einfach eine interne Bitmap. Woher diese kommt ist völlig gleich.
Du kannst auch einfach PictureBox.Image verwenden:

C#-Quelltext
1:
Bitmap bitmap = picturebox.Image as Bitmap;                    


Lihlu - Fr 17.03.17 12:44

Dieser Link von dir scheint ganz gut zu funktionieren. Nur leider noch mal die frage. Wie bekomme ich das hier auf die PictureBox angewendet ?
https://gist.github.com/superic/8165723

Tut mir leid für die vielen dumme fragen ._.


Th69 - Fr 17.03.17 14:07

Wie setzt du denn das Bild in der PictureBox? Du mußt doch irgendwoher ein Bitmap (bzw. Image) Objekt haben - und darauf wendest du dann die Methode an.


Delete - Fr 17.03.17 15:04

- Nachträglich durch die Entwickler-Ecke gelöscht -