Dies ist eine einfache Herausforderung.
Die Aufgabe besteht darin, Code zu schreiben, der ein 448 * 448-Quadrat-Bild mit 100% Transparenz ausgibt. Die Ausgabe sollte den Standardbildregeln entsprechen .
code-golf
graphical-output
Anush
quelle
quelle
Antworten:
Imagemagick in einer Muschel, 35
Ist das erlaubt?
quelle
\windows\system32
).convert
Tool ausgeliefert, da der Name nicht mit dem Systemdienstprogramm übereinstimmt. Du rennstmagick convert ...
stattdessen.convert
ist Teil von ImageMagick, daher würde es nicht funktionieren, es als eigene Sprache zu bezeichnen.ImageMagick Convert
.APL (Dyalog Unicode) , 11 Byte SBCS
Volles Programm. Druckt ein 448 x 448 x 4-Array, das ein 448 x 448 rgba-Bild darstellt.
Probieren Sie es online aus!
⍴
ist r eshapequelle
448 448
?802832p0
als Antwort haben?Geh, 70
Ich habe noch nie einen Golf in Go gesehen. Definiert eine Funktion namens a, die das Bild ausgibt
quelle
JavaScript (ES6),
7469 ByteGibt ein PNG-Bild zurück, das als Daten codiert ist: URL, die z. B. zum Einstellen als
src
von geeignet istHTMLImageElement
. Bearbeiten: 3 Bytes dank @Shaggy und weitere 2 Bytes dank @Arnauld gespeichert.quelle
document.createElement`canvas`
sollte funktionieren und 2 weitere Bytes sparen.d=document
an der Spitze und ersetzendocument
mitd
? Sollte ~ 5 Zeichen speichern.document.write
ist nur ein Teil des Stack-Snippets, nicht Teil der Funktion, daher zählt es sowieso nicht.Java 8, 23 (oder 20) Bytes
Gibt ein 3D-Array mit 448 x 448 x 4 0 zurück.
Probieren Sie es online aus.
Erläuterung:
Gibt eine 448x448-Matrix von 0s zurück.
In Java können RGBA-Werte durch eine Ganzzahl dargestellt werden . Das Hexadezimal
0x00000000
würde00
für Rot, Grün, Blau bzw. Alpha stehen. Und0x00000000
ist gleich der ganzen Zahl0
.Probieren Sie es online aus.
quelle
v->new int[448][448]
? Weil eine Farbe in Java mit einer Ganzzahl (RGBA) dargestellt werden kann.0-255
ein gültiger RBGA-Wert? Ich weiß, es ist ein gültiger RGB-Wert, aber auch RGBA? Ich verwende fast nie Bilder in Java, daher bin ich mit ihnen nicht allzu vertraut. Ich habe meine 4 inneren Nullen einfach auf andere Antworten gestützt.0x00000000
, die auf ein int passen. Die ersten 2 Hex-Ziffern sind das Alpha, die nächsten 2 sind das Rot, die nächsten 2 sind das Grün, die letzten 2 sind das Blau. Sie benötigen also nur eine Ganzzahl. Siehe BufferedImage.TYPE_INT_ARGB . Sie haben 4 Werte, zusammengefasst als eine Ganzzahl. Und0x00000000
ist gleich0
.Java 8
Speichern des Bildes in einer Datei mit einem Pfad von
s
101 BytesProbieren Sie es online aus ... irgendwie
Rückgabe des BufferedImage, 46 Bytes
Speichern des Bildes in der Datei
f
, 83 BytesDumping von PNG an STDOUT, 92 Bytes (nur ASCII!)
Probieren Sie es online aus!
Vielen Dank an Kevin für das Speichern eines Bytes für die zweite und vierte Lösung!
quelle
()->
in zwei Ihrer Antworten auf Golf spielenv->
, da es einen leeren unbenutzten Eingang haben darf (für den ich persönlich benutzeVoid
). Ihr letzter TIO wäre dann dieser .05AB1E ,
12109 BytesProbieren Sie es online aus.
oder alternativ:
Probieren Sie es online aus.
-2 Bytes dank @Emigna .
-1 Byte dank @Adnan .
Gibt eine 448x448x4 3D-Liste von Nullen aus.
Erläuterung:
Sehen Sie diese 05AB1E Antwort von mir (Abschnitt Wie große natürliche Zahlen zu komprimieren? ) Zu verstehen , warum
Ž1Â
ist448
.quelle
Verarbeitung, 66 Bytes
quelle
Python 2.7, 17 Bytes (22 mit Druck)
Mit Druck:
Als Variable:
Da ein Array von RGBA zulässig ist, habe ich dies oben erstellt und standardmäßig alle Nullen verwendet - das heißt schwarz, aber völlig transparent.
Probieren Sie es online aus!
quelle
[0]*802816
dass dies auch funktionieren sollte.Gelee , 8 Bytes
Eine niladische Verbindung, die ein 448 x 448 RGBA-Array transparenter schwarzer Pixel ergibt.
Probieren Sie es online aus!
Wie?
quelle
HTML, 25 Bytes
Ist das gültig?
Testen Sie es (
background
angewendet mit CSS, damit Sie es "sehen" können)quelle
<svg height=448 width=448
in eine HTML-Datei und das Öffnen eine leere Datei erzeugt<body>
. Bei einer Strafe von 1 Byte wird beim Schreiben<svg height=448 width=448>
jedoch ein<body>
Bild mit einem leeren SVG-Bild erstellt.>
bedeutet, dass dies tatsächlich gültig ist, was das Markup betrifft.<!DOCTYPE html>
,<html>
,<head>
,<style>
,<script>
und alles rund um das geht<body>
. Ein Teil des zusätzlichen Codes ist erforderlich, um die gewünschte Ausgabe zu erzeugen. Sie können sehen, dass der resultierende Code als analysiert wird<svg height="448" width="448" < body></svg>
, da er<svg height=448 width=448 </body>
in den Iframe schreibt . Als solches glaube ich immer noch, dass es nicht gültig ist.C # (Visual C # Interactive Compiler) , 21 Byte
Probieren Sie es online aus!
quelle
Rust -
206201168 BytesDadurch wird eine tatsächliche, lesbare o.tga-Datei ohne Bibliotheken oder integrierte Funktionen im TGA-Binärformat gemäß http://paulbourke.net/dataformats/tga/ geschrieben , indem Breite und Höhe fest in den Binärdateikopf codiert werden.
-5 Bytes verkürzen den Dateinamen, korrigieren die Bildgröße, nur bei ASCII
quelle
a
würde auch als Dateiname funktionieren, nicht wahr? Übrigens ist es 448 * 448, nicht 444 * 444, also ist dies ungültig[255,0,0,0,0]
6272-mal sein ([0,0,0,0]
128-mal, 6272-mal wiederholt). Der Bildtyp wäre dann10
nicht2
. Noch besser, Farbkarte für kürzere Lauflängen-Codierung (0,0,0,0
->0
)C # (Visual C # Interactive Compiler) , 48 Byte
Anscheinend ist die Ausgabe
[1D array of pixels, width, height]
in Ordnung, daher wird ein Tupel von `ausgegeben (IEnumerable von Pixeln, Breite, Höhe).Probieren Sie es online aus!
C # (Visual C # Interactive Compiler) , 58 Byte
Die ursprüngliche Matrix gibt die Antwort zurück.
Da die Bild-E / A-Regeln die Ausgabe als Matrix von RGB-Werten ermöglichen, gibt diese Übermittlung eine Matrix von RGBA-Werten aus, die durch Tupel mit vier Werten dargestellt werden, die alle 0 sind.
Probieren Sie es online aus!
quelle
PHP, 192 Bytes
Leider saugt PHP diesen Aspekt irgendwie an, weil es eine ganze Menge Code erfordert. Aber wo saugt PHP nicht?
Ungolfed:
Wenn Sie es nur erstellen möchten, ohne es auszugeben, können Sie natürlich die Befehle
header()
und weglassenreadfile()
. Trotzdem ist es idiotisch lang.quelle
'<?php return '.var_export(array_fill(0,952576,0),1).';';
das Array auf ausführbare Weise exportieren. Sie können tunphp -f image.php > array.php
, und woanders können Sie tun$array = include('array.php');
, um wieder ein verwendbares Array zu haben. Aber ich weiß nicht, ob es gültig ist, also gebe ich es Ihnen, um es als Alternative hinzuzufügen. Oder sogar ein<?=json_encode(array_fill(0,952576,0));
.true
Kann übrigens durch ersetzt werden1
, um 3 Bytes zu sparen. Lesen Sie die Dokumentation vonimagepng()
, können Sie einfach tunheader('Content-type: image/png');imagepng($i);
. Ich glaube , Sie können auch ersetzen$b=imagecolorallocatealpha($i,0,0,0,127);imagefill($i,0,0,$b);
mitimagefill($i,0,0,imagecolorallocatealpha($i,0,0,0,127));
aber Lassen Sie mich nicht an , dass zitieren.<? imagecolorallocatealpha($i=imagecreate(448,448),0,0,0,127);header('Content-type: image/png');imagepng($i);
ein transparentes Bild (109 Bytes) erzeugt. Sendet das Bild automatisch an den Browser / die Standardausgabe und alles.Python 3.7 - PIL importiert, 30 Bytes
Dies erfordert einen Import, hat jedoch den Vorteil, dass eine tatsächliche Bilddatei anstelle eines abstrakten leeren Arrays erstellt und angezeigt wird.
Erläuterung:
Image.show () öffnet das Bild in Ihrem Standardbildprogramm. In meinem Fall wird dadurch eine temporäre Bitmap-Datei in Windows Photo Viewer geöffnet, die Ergebnisse können jedoch variieren. Dies ist wohl ein Betrug, da die Bitmap-Darstellung keine Transparenz enthält
Variationen ...
quelle
Import
.new("LA",[448]*2).show()
26 Byte.MATLAB, 31 Bytes
Erstellt eine 448 x 448-Wertematrix
NaN
undimwrite
speichert sie anschließend in einer PNG-Datei mit dem Namen'.png'
und setzt die Transparenz auf 1, wodurch sie transparent wird. Der'Transparency'
Parametername kann abgekürzt werden,'tr'
da MATLAB eine teilweise Zeichenfolgenübereinstimmung von Parameternamen ermöglicht, solange die verkürzte Version unter den verfügbaren Parametern eindeutig ist.quelle
dzaima / APL + APLP5 ,
1816 BytesFunktion, die ein Bildobjekt ausgibt, das auf den Bildschirm gezeichnet werden kann (ohne Effekt) oder wieder in Pixelwerte konvertiert werden kann.
-2 danke an ngn !
quelle
{P5.img⍴∘0,⍨448}
Gelee ,
109 BytesProbieren Sie es online aus!
Gibt ein 448x448x4-Array aus
Vielen Dank an @JonathanAllan für das Speichern eines Bytes.
quelle
2¡
kann sein⁺
Rot , 33 Bytes
Die Deckkraft ist standardmäßig vollständig undurchsichtig (0).
So verwenden Sie es / ein vollständiges Programm /:
quelle
MathGolf , 10 Bytes
Probieren Sie es online aus!
Erläuterung
Diese Methode spart 1 Byte gegenüber dem "Standard"
♦7*_4º*a*a*
quelle
JavaScript (Node.js) , 39 Byte
Anscheinend ist die Ausgabe
[height, width, 1d array of RGBA values]
in Ordnung.Probieren Sie es online aus!
-3 Bytes dank @Arnauld
quelle
[1D array of pixels, width, height]
[width, height, array]
.SmileBASIC, 27 Bytes
Speichert ein zweidimensionales 448x448-Array, das mit Nullen gefüllt ist, in einer Datei mit dem Namen
DAT:I
(was kürzer ist als das Definieren einer Funktion, die das Array irgendwie zurückgibt).Die Standardformate (von allen Grafikfunktionen verwendet) für Farben in SmileBASIC sind 32-Bit-ARGB und 16-Bit-5551-RGBA und
0
sind in beiden transparent.quelle
ARGB
Format (üblicherweise in Smilebasic verwendet), also0x00000000
Alpha = 0, Rot = 0, Grün = 0, Blau = 0. Schwarz wäre0xFF000000
.GRP
Fall ist, aber ich werde es loslassen, da die tatsächlich gespeicherten Daten dieselben sind.ScPL für iOS-Verknüpfungen , 98 Byte
Verknüpfung iCloud Link
Nimmt ein 1x1 transparentes GIF, das als base64 codiert ist, und ändert die Größe
quelle
Jstx , 24 Bytes
Erläuterung
Probieren Sie es online aus!
quelle
R , 21 Bytes
Probieren Sie es online aus!
Gibt ein 3D-Array von Nullen zurück.
quelle
Japt , 9 Bytes
Probieren Sie es online aus!
quelle
C ++, SFML, 131 Bytes
quelle
JavaScript + HTML, 56 Bytes
Wenn Sie auf "Code-Snippet ausführen" klicken, wird ein transparentes PNG 448 x 448 in einem IFRAME generiert. Sie können dann mit der rechten Maustaste auf "Bild speichern unter ..." klicken, um es auf Ihren Computer herunterzuladen.
quelle