Ich habe kürzlich in dem Song aufgeführt, dass ich ein Textpert bin, der sich mit SMS während der Fahrt befasst, und eine bestimmte Zeile im Song hat diese Herausforderung inspiriert.
Ich bücke mich nie so tief, um Fotos zu schreiben. Stattdessen schreibe ich die richtige Kombination aus Einsen und Nullen
Offensichtlich wäre dies eine fast unmögliche Sache in einem Kopf, und deshalb sollten Sie Textperten weltweit helfen, indem Sie ein Programm codieren, um dasselbe zu tun.
Ihre Aufgabe ist es, den Namen einer Bilddatei mit den Abmessungspixeln zu übernehmen 500x500
und die Datei als Binärdatei auszugeben. Sie können auch ein Bild als Eingabe verwenden, wenn Ihre Sprache dies unterstützt.
Sie können Bilddateien mit den Erweiterungen verwenden
.jpg
.png
.gif
.bmp
.svg
Gestatten Sie mir zu demonstrieren, wie ein Bild in ein Binärbild konvertiert wird, für diejenigen, die nicht verstehen, was ich meine.
Schritt 1
Nehmen Sie das erste Pixel in der Datei und rufen Sie seinen RGB-Wert als 3 Dezimalzahlen ab: R, G und B. Nehmen wir beispielsweise an, dass das erste Pixel 255,0,0
(rot) ist.
Schritt 2
Konvertieren Sie jede Zahl in ihre 8-Bit-Binärdarstellung und verketten Sie sie in eine einzelne 24-Bit-Zahl. Für das Beispiel ergibt dies111111110000000000000000
Schritt 3
Fügen Sie diese 24-Bit-Nummer zur endgültigen Ausgabe hinzu. Daher sollte die endgültige Ausgabe 6000000
lang sein und vollständig aus 1
und bestehen0
Dies ist ein Code-Golf, also gewinnt der kürzeste Code!
quelle
Antworten:
Pyth ,
1413 Bytes-1 Byte dank Erik the Outgolfer (
z
kann für implizite Eingaben entfernt werden).Erklärungen
Leider kann dies aus Sicherheitsgründen nicht mit dem Online-Dolmetscher getestet werden . Sie müssen Pyth klonen, um es auf Ihrem eigenen Computer zu testen.
quelle
z
.MATL ,
1312 BytesAkzeptiert einen Dateinamen als Zeichenfolge als Eingabe. Die ausgegebenen 24-Bit-Nummern werden in Zeilenreihenfolge angezeigt.
Leider funktioniert dies in den Online-Dolmetschern aus Sicherheitsgründen nicht. Hier ist ein Screenshot davon, der auf meinem lokalen Computer funktioniert
Hier ist eine leicht modifizierte Version, in der ich manuell ein 2 x 2 x 3-Bild erstelle und es dann (fast) mit demselben Code verarbeite.
Erläuterung
quelle
Mathematica, 103 Bytes
Nimmt ein Bild x.bmp (oder ein anderes) und konvertiert es in eine x.txt-Datei
quelle
PadLeft
könnten Sie das dritte Argument vonIntegerDigits
(dhIntegerDigits[#,2,8]&
Import
eingibt und in die Standardausgabe ausgibt, anstatt "Exportieren" zu verwenden.C #, 309 Bytes
Mein zweiter Code Golf, wenn Sie nicht sagen können. Nimmt ein Bild x.jpg ...
quelle
Oktave, 46 Bytes
Erstellt eine anonyme Funktion mit dem Namen
ans
, die entweder mit einem Dateinamen (ans('file.png')
) oder einer URL (ans('http://image.png')
) aufgerufen werden kann.quelle