String to Bild



  • Hi

    Ich suche eine Möglichkeit wie ich einen string oder char* in ein Bild verwandle.

    Ich bräuchte als Resultat ein zweidimensionales Array[zeile][8 Bildpunkte].
    unsigend char image[10][16] wäre dann ein S/W Bild mit 10 Zeilen und 128 Bildpunkten.

    Wobei mir das array mal egal ist. Ich brauche nur was damit ich den string in irgendeiner Form als Bild bekomme. Umwandeln sollte dann das kleinere Problem sein.

    Hat mit sowas schon jemand Erfahrungen gemacht und weiß wie das geht bzw. kann mir wer nen Suchbegriff für google geben unter dem ich was brauchbares finde (meine führen leider nur zu VB, C#, Java, ... Code oder string to alles außer Bild :/)

    Ach ja das ganze muss unter Linux laufen. Am liebsten wäre mir was ANSI mäßiges das überall geht (wirds aber bei sowas warscheinlich ned spielen ^^). Wenns nur unter Linux rennt ist es auch ok.

    Keros



  • Deine Anforderung klingt merkwürdig.

    Wo genau kommt der String her, und was willst du im Großen und Ganzen damit bezwecken? Vielleicht kann dir hier dann jemand einen besseren Ansatz anbieten, als z.B. ein 2 Mio Pixel-Bild in einen string zu verklappen und umgekehrt...



  • it0101@loggedoff schrieb:

    Deine Anforderung klingt merkwürdig.

    Is auch kein alltägliches Problem ^^

    it0101@loggedoff schrieb:

    Wo genau kommt der String her, und was willst du im Großen und Ganzen damit bezwecken?

    Naja wo ein string eben so herkommt 🙄

    string text = new string ("Beispiel");
    char *text = "Beispiel";
    text = readUserInput ();
    ...
    

    Was ich damit bezwecken will. Nimm dir als Beispiel deinen Monitor vor dir der schreibt auch Zeilenweise eine Anzahl von Punkten. Mein outputdevice funktioniert ähnlich (kann aber nur schwarz / weiß).

    it0101@loggedoff schrieb:

    Vielleicht kann dir hier dann jemand einen besseren Ansatz anbieten, als z.B. ein 2 Mio Pixel-Bild in einen string zu verklappen und umgekehrt...

    Ja ich suche das "umgekehrt" 😉 . Ich will einen String in ein sagen wir mal 25 Zeilen (= Pixel) hohes Bild (char array, bmp, oder was auch immer) umwandeln. Die Länge des Bildes ergibt sich dann zwangsweise aus der Länge des Textes und dem Verhältnis zur Höhe.

    Keros



  • Aso. Ich dachte du sprichst hier irgendwie von Bitmaps oder JPGs...
    Also praktisch nur Binär.

    Wie wäre es denn mit einem solchen Format:

    "1001_1111_0000_1000"
    

    Also praktisch "Zeile1_Zeile2_Zeile3_Zeile4".

    Wo is das Problem? oder hab ich das jetzt falsch interpretiert?

    Zum zerlegen solcher Strings bietet std::string einige Funktionen wie "find", "find_first_of", usw.



  • Was brauchst du denn nun? Das Bitmap Format ist es mehr als nur ein Array aus Pixels 🙂 Dein s/w Outputdevice ist vermutlich aber nicht mehr als ein char*. Das sind ziemlich große Unterschiede zwischen beidem...



  • Keros schrieb:

    ...

    Was Du brauchst, sind Pixelmaps. Für jeden Buchstaben benötigst Du eine solche Map, die dann dem ASCII-Code des Buchstabens zugeordnet wird.
    Beispiel:

    typedef char PixMap[8][8];
    
    PixMap A =
    {
        {0, 0, 0, 1, 1, 0, 0, 0},
        {0, 1, 1, 0, 0, 1, 1, 0},
        {0, 1, 1, 0, 0, 1, 1, 0},
        {0, 1, 1, 0, 0, 1, 1, 0},
        {0, 1, 1, 1, 1, 1, 1, 0},
        {0, 1, 1, 0, 0, 1, 1, 0},
        {0, 1, 1, 0, 0, 1, 1, 0},
        {0, 1, 1, 0, 0, 1, 1, 0}
    };
    
    PixMap B =
    {
     //...
    };
    
    //...
    
    std::map<char, PixMap*> charToPixMapTable;
    
    charToPixMapTable['A'] = &A;
    charToPixMapTable['B'] = &B;
    //...
    

    Das machst Du für jeden Buchstaben (toll, was? 🤡 ). Dann kannst Du Deine Strings durchegehen, und aus den einzelnen Pixmaps eine Bitmap zusammenbasteln.



  • Ahh

    Hab scheinbar nicht klar ausgedrückt das ich einen TEXT in ein BILD umwandeln will.

    Ich habe also den string "Test" und der soll in das char Array (Bild) umgewandelt werden.

    Nein ich will eigentlich kein Bitmap sondern das beschriebene char array haben. Aber aus einem Bitmap (für das es sicher irgendwo Funktionen gibt) kann ich mir das char array auch zusammenbauen 😉

    Danke Tachyon
    Ich werd gleich mal google nach Pixelmaps abgrasen. Selber schreiben will ich die eigentlich nicht da skalierung usw auch noch gebraucht wird. 25 Zeilen waren nur ein Beispiel es können auch 250 oder mehr sein 😉
    Also bevorzuge ich da eine fix fertige Header datei 😃

    Keros





  • Danke

    Habs mitlerweile hinbekommen. Bin über pngwriter auf freetype gestoßen und das kann alles was man so braucht 🙂

    @caster
    Habe deinen Link leider erst gesehen als ich es schon gefunden hatte 🙂

    Keros


Anmelden zum Antworten