2016-11-11 3 views
-1

Ich versuche einen Weg zu finden, die rgb-Werte von jedem Pixel in einem Bild herauszuholen. Wenn ich eine 3x3 Bild, was ich versuche zu bekommen, wie eine Ausgabe so etwas wie dieses:Quellcode eines JPG- oder BMP-Bilds anzeigen

{ 
    "0-0": [125,222,0], 
    "0-1": [125,222,0], 
    "0-2": [125,222,0], 
    "1-0": [125,222,0], 
    "1-1": [125,222,0], 
    "1-2": [125,222,0], 
    "2-0": [125,222,0], 
    "2-1": [125,222,0], 
    "2-2": [125,222,0] 
} 

ich dies ein bisschen vage Frage wissen, dass propbly gekennzeichnet werden, aber imma es dort werfen.

Dank und Jubel

+0

Welche Bibliotheken/Programmiersprachen möchten Sie verwenden? – Miki

+1

du hast recht zu vage/breit/unklar also + Close for now. Fügen Sie Besonderheiten wie Welche Sprache/OS/gfx lib hinzu? Auch Arrays werden normalerweise nicht durch Strings indiziert. Es gibt viele Möglichkeiten, dies zu tun. 1. Verwenden Sie die dritte Parteibibliothek. 2. Schreiben Sie einen eigenen Dekoder. 3. Verwenden Sie In-Build-Funktionen Ihrer Compiler-/IDE-/OS-Plattform. Wenn Sie einen eigenen Decoder schreiben möchten, ist JPEG ein bisschen zu viel für einen Anfänger, und BMP hat zu viele Variationen, so dass ich nur ein bestimmtes BMP-Format entziffern würde (wie 24 Bit RGBA oder was auch immer) und beliebige Bilder konvertieren kann zu einem solchen Format. – Spektre

+0

werfen Sie einen Blick auf diese [öffnende Bilddatei auf C++, PNG, JPEG] (http://stackoverflow.com/a/37340970/2521214) es ist und VCL/C++ Beispiel des Ladens mehrerer Bildtypen mit # 1, # 2 mit vorhandenem Code für die PCX-Dekodierung, damit Sie sehen können, wie es aussieht ... für PNG wird LIBPNG verwendet, für BMP, JPEG Compiler/IDE-In-Build-Funktion und der Rest hat meine eigenen Decoder (nur PCX-Code im Beispiel vorhanden) – Spektre

Antwort

0

Es ist eigentlich sehr einfach zu tun (und noch hart). Sie müssen einen Decoder für jedes Bildformat erhalten, an dem Sie interessiert sind. Dann müssen Sie das Bild dekodieren. Dann müssen Sie die vom Decoder zurückgegebenen Pixelwerte ausdrucken.

In vielen Fällen können Sie dies direkt aus den in einer BMP-Datei gespeicherten Daten tun. Kommende BMP-Dateien sind jedoch RLE-codiert und würden dies unmöglich machen.

Verwandte Themen