Ich habe eine PPM-Datei lesen mit ihren Daten verschlüsselt (Metadaten nicht verschlüsselt ist), Go verwenden und das Dateiformat mir gegeben enthält:golang: Lesen Zeichenfolge, ganze Zahlen und Bytes aus der Datei
Die "P3" magische Zahl (lesen als String)
Bildbreite (gelesen als integer)
Bildhöhe (gelesen als integer)
maximaler Farbwert (als Ganzzahl gelesen)
Dann, ich brauche der Rest der Datei zu lesen, wird die verschlüsselten Bits, die ich als eine einzige Byte-Array/Scheibe zu lesen.
z.B .:
P6
480 360
255
�š��GHFHFI�GHFHFG~EG~EG~E
...
HFD{BR�Rz�y|�vxyyhlf%8&NFzx
Was ist ein guter Weg String und Integer (die 4 ursprünglichen Metadatenwerte) und den Rest (verschlüsselten Teil) als Bytes aus der Datei zu lesen? Es kann am effizientesten sein, aber am saubersten (weniger Linien) ist bevorzugt.
Sind die ganzen Zahlen in einem String-Darstellung, oder sind sie binär? Welche Größe haben sie oder wie sind sie abgegrenzt? Wenn sie binär sind, sind der große Endian und der kleine Endian? – JimB
Ich denke, die Leute von spakin/netpbm haben eine ziemlich gute Möglichkeit, den Metadatenteil für netpbm-Dateien mit bufio zu extrahieren (siehe [github-repo] (https://github.com/spakin/netpbm/blob/master/netpbm) .go)) – skymon
@ JimB das Beispiel, das ich gab, wird aus einer echten Datei extrahiert. Die Metadaten lauten wie im Beispiel "P6 \ n480 360 \ n255 \ n" und der Rest (Daten) besteht nur aus Bytes. Es ist alles in utf-8 codiert. –