Bild durch Pixelangabe erzeugen



  • Hallo,
    wie im Titel beschrieben habe ich beispielsweise 256*256 Pixeldaten und die Informationen: Bits pro Pixel, Weite und Höhe. Gibt es irgendein Programm um diese Pixeldaten mal "eben" schnell anzeigen zu lassen?

    Ideal wäre, wenn ich die Pixeldaten + Pixel itself (egal welche Formatierung) in eine einfache Textdatei schreiben könnte und dieses Textfile angezeigt werden kann.

    Habe ehrlich keine Lust erst wieder einen Bitmapcoder zu schreiben, nur um mir ein Bild anzeigen zu lassen ):

    Danke im voraus! :xmas2:

    Frohe Vorweihnachtszeit meine Kinder :xmas1:



  • Du willst Pixel als Text kodieren? Also so? 😃

    MeinBild.txt

    800 600 // width, height, bit
    50 250 50 // rgb
    250 50 50 // rgb
    ..
    


  • Ich denke er möchte die Bildinformationen so als Matrix angezeigt bekommen wie sie im Bild stehen würden.



  • MisterX schrieb:

    Ich denke er möchte die Bildinformationen so als Matrix angezeigt bekommen wie sie im Bild stehen würden.

    Richtig.

    @cocky
    Ist mir egal, es geht einfach darum das ich die Pixel praktisch in einem Array habe und gerne anzeigen möchte.



  • Vor kurzem habe ich auch sowas gebraucht, da ich 16x16 Array mit Grauwerten hatte. Nachdem mir der Aufwand mit gnuplot dafür zu groß war (http://gnuplot.sourceforge.net/demo/image.html) habe ich das geschwind in ein paar Zeilen und Minuten mit C# realisiert. Das http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.aspx + SetPixel und Save ist alles was du brauchst. Ne bestehende Software habe ich dazu leider nicht gefunden.



  • KasF schrieb:

    Vor kurzem habe ich auch sowas gebraucht, da ich 16x16 Array mit Grauwerten hatte. Nachdem mir der Aufwand mit gnuplot dafür zu groß war (http://gnuplot.sourceforge.net/demo/image.html) habe ich das geschwind in ein paar Zeilen und Minuten mit C# realisiert. Das http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.aspx + SetPixel und Save ist alles was du brauchst. Ne bestehende Software habe ich dazu leider nicht gefunden.

    Danke dafür, allerdings möchte ich nicht so wirklich etwas mit C# zu tun haben 😞

    Hätte vielleicht anfügen sollen das ich ausschleisslich mit C++ arbeite, Sorry.



  • Wieso nicht? Du willst doch ein Problem lösen, also nimmst das, womit du es schnell und effektiv lösen kannst.

    Du kannst dich natürlich in C++ erstmal nach einer Bibliothek umschauen und dich tot-frickeln oder einfach geschwind diese 10 Zeilen in C# runtertippen. Gut gemeinter Tipp: Versteif dich nicht zu sehr auf C++. Ich liebe zwar auch diese Sprache, aber es gibt auch Alternativen, die dir ein bestimmtes Problem effizienter lösen.



  • Ich habe nen alten und unfertigen Loader für Targa Dateien, funktioniert aber mit "normalen" targas. Ist in C++ geschrieben. Hilft der dir?



  • cooky451 schrieb:

    Ich habe nen alten und unfertigen Loader für Targa Dateien, funktioniert aber mit "normalen" targas. Ist in C++ geschrieben. Hilft der dir?

    Wenn dein Loader auch Targa's schreibt sehr gerne! :xmas2: (Ist ja wie Weihnachten :xmas1: )

    Übrigens, ich mag die scheiß Smileys :xmas1: :xmas1: :xmas2: :xmas2:



  • Argh.. der ist gerade etwas integriert in ein anderes Projekt, aber ich poste mal die für dich relevanten Teile:

    struct TargaColorMapSpec
      {
        uint16_t entry_index;
        uint16_t color_map_length;
        uint8_t color_map_entry_size;
      };
      struct TargaImangeSpec
      {
        uint16_t x_origin;
        uint16_t y_origin;
        uint16_t width;
        uint16_t height;
        uint8_t pixel_depth;
        uint8_t image_descriptor;
      };
      struct TargaHeader
      {
        uint8_t id_length;
        uint8_t color_map_type;
        uint8_t image_type;
        TargaColorMapSpec color_spec;
        TargaImangeSpec image_spec;
      };
    
      // Datei öffnen / Einlesen
    
      TargaHeader header;
      reader.read(header.id_length);
      reader.read(header.color_map_type);
      reader.read(header.image_type);
      reader.read(header.color_spec.entry_index);
      reader.read(header.color_spec.color_map_length);
      reader.read(header.color_spec.color_map_entry_size);
      reader.read(header.image_spec.x_origin);
      reader.read(header.image_spec.y_origin);
      reader.read(header.image_spec.width);
      reader.read(header.image_spec.height);
      reader.read(header.image_spec.pixel_depth);
      reader.read(header.image_spec.image_descriptor);
    
      // Ab jetzt (width * height * pixel_depth / 8) byte einlesen, das sind deine Pixel.
    

    Schreiben solltest du mit etwas umbauen auch können.



  • Danke Digga :xmas2:



  • Kóyaánasqatsi schrieb:

    Ideal wäre, wenn ich die Pixeldaten + Pixel itself (egal welche Formatierung) in eine einfache Textdatei schreiben könnte und dieses Textfile angezeigt werden kann.

    ppm-Format





  • ppm

    Danke!


Anmelden zum Antworten