Zeichen [A-Z;0-..] als Pixel zeichnen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von fabianpr.

    Zeichen [A-Z;0-..] als Pixel zeichnen

    Hey Community,

    momentan bin ich an einem etwas komplexeren Programm dran & stehe seit ein paar Stunden so ziemlich auf dem Schlauch.
    Die Anwendung soll aus einem Server/Client bestehen. Soweit, so gut.
    Der Server soll z.B ein Textdokument[ASCII] einlesen & dann für jedes Zeichen ein Pixel [1x1] zeichnen. In einer ASCII-Datei gibt es. max 256 verschiedene Zeichen. Für jedes dieser Zeichen hab ich eine Farbe festgelegt, in welcher der entsprechende Pixel gezeichnet werden soll.

    Zum Schluss soll die "Zeichnung" in einer JPEG abgespeichert werden. Nach dem Versenden zum Client [diesen Teil hab ich schon], soll die Bilddatei wieder entschlüsselt werden & wieder in ihren einzelnen Zeichen abgespeichert werden. Dafür könnte ich die FastGraphicsLib
    verwenden, denn GetPixel[Bitmap-Class] ist lange nicht so schnell wie die FastG.-Lib, denn bei dieser Anwendung kommt es auf Schnelligkeit an.

    Hier eine kleine Zeichnung, die das Nachvollziehen erleichtern soll/te [Klicken zum Vergrößern]:



    Ich würde mich freuen, wenn der eine oder andere mir behilflich sein könnte.
    Ein paar Bsp. oder CodeSnippets reichen mir, ich brauch [& will^^] keinen fertigen Sourcecode :)

    ..
    Fabian :thumbsup:
    PS: Wenn ich meine Anwendung 100% fertig habe, werde ich sie posten & hier verlinken, dass so manch intressierter auch was davon hat 8-)
    du kannst aber in einer Farbe 3 ASCII zeichen speichern, nur nicht in JPEG, denn JPEG ist keine verlustfreie Komprimierung und verändert die Farbwerte somit leicht...
    erstes Zeichen speicherst du dann z.B. in R, zweites in G, drittes in B(bei PNG dann evtl. noch viertes in A)...

    Wo das Problem dabei ist, weiß ich aber nicht^^
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Danke, aber ich verstehe nicht ganz genau was du meinst. 3 ASCII-Zeichen in einer Farbe speichern? Ich dachte mir das so, dass wenn im Text ein "A" ist, bekommt der Buchstabe "A" die Farbe "RGB 123, 456, 789", was z.B ein helles rot wäre. Wie kann soll ich dann 3 Buchstaben in einer Farbe speichern? Ist es etwa möglich, dass ich "x4!" als eine Farbe zeichne? Eine Erklärung wäre nett ;)

    Das Problem ist, dass ich nicht weiß, wie genau ich die ausgelesenen Zeichen in Pixel zeichnen soll und dann als .png abspeichern soll..? Gibt es da eine .dll oder geht das auch so?

    ..
    ein verwirrter
    Fabian :D
    RGB: 120, 52 , 33
    Warum jedem Zeichen eine Farbe zuweißen, wenn du weißt, dass jedes Zeichen eine Zahl zwischen 0 und 255 entspricht, R ist ein Wert zwischen 0 und 255, G ist zwischen 0 und 255 und B ebenfalls...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Ahh *klack*
    @jvbsl: Selbst als ich deinen 2.Beitrag gelesen hatte, guckte ich verdutzt, aber nachdem ich beide durchgelsen hatte war es klar^^ Danke.. alles nur eine Sache des Verständnis, aber ich glaube, allein wär ich nie drauf gekommen..
    So jetzt muss ich nur noch wissen, wie ich das ganze zeichne, also mit welchen Befehlen ich z.B RGB: 120, 52 , 33 zeichnen kann, dann die nächsten drei ASCII-Zeichen auslesen & zeichnen, bis dann 1 vertikale "Bild"-Reihe voll ist, dann in die nächste Reihe & dieses Spiel so funktioniert bzw. weitergeht, bis die max. Pixelzahl des Bildes ausgefüllt ist [hier wäre es bspw. 3800x2500]. Wie realisiere ich das? Hat irgendwer eine Ahnung? Ist "etwas" komplex, ich weiß :D

    bis dahin aber schonmal ein großes Danke an jvbsl!
    ..
    Fabian

    VB.NET-Quellcode

    1. For i As Integer = 0 To text.Length - 1 Step 3
    2. Dim r As Integer = Convert.ToByte(text(i))
    3. Dim g As Integer = Convert.ToByte(text(i+1))'TODO: Wenn Text kürzer ist 0
    4. Dim b As Integer = Convert.ToByte(text(i+2))'TODO: Wenn Text kürzer ist 0
    5. Dim col As Color = Color.FromArgb(r,g,b)
    6. 'Pixel setzen
    7. Next

    so könnte das aussehen, hast aber trotzallem noch einiges zu tun ;)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Okay, Danke [nochmals], das ist ein hilfreicher CodeSnippet für mich.
    Damit kann ich das Thema abhaken :thumbup:

    Schönen Abend noch,
    Fabian
    achja: Der Release des Programmes ist sicher, wenn ich dran bleibe und mir niemand Steine in den Weg legt :D
    Ich veröffentlich es dann hier..