To proste wyzwanie.
Zadanie polega na napisaniu kodu, który generuje kwadratowy obraz 448 * 448 ze 100% przezroczystością. Dane wyjściowe powinny być zgodne ze standardowymi regułami obrazu .
code-golf
graphical-output
Anush
źródło
źródło
Odpowiedzi:
Imagemagick in some shell, 35
Czy to jest dozwolone?
źródło
\windows\system32
).convert
narzędziem, ponieważ nazwa koliduje z narzędziem systemowym. Zamiastmagick convert ...
tego biegniesz .convert
jest częścią ImageMagick, więc nazwanie go własnym językiem nie działałoby.ImageMagick Convert
. Być może warto jednak otworzyć meta na ten tematAPL (Dyalog Unicode) , 11 bajtów SBCS
Pełny program Drukuje tablicę 448 na 448 na 4, reprezentującą obraz rgba 448 na 448.
Wypróbuj online!
⍴
Jest r eshapeźródło
448 448
?802832p0
jako odpowiedź?Idź, 70
Nigdy wcześniej nie widziałem golfa w Go. Definiuje funkcję zwaną a, która generuje obraz
źródło
JavaScript (ES6),
7469 bajtówZwraca obraz PNG zakodowane jako dane: URL odpowiedniej np do ustawiania jak
src
zHTMLImageElement
. Edycja: Zapisano 3 bajty dzięki @Shaggy i kolejne 2 bajty dzięki @Arnauld.źródło
document.createElement`canvas`
powinien działać, oszczędzając 2 kolejne bajty.d=document
na górze i wymienićdocument
zd
? Powinny zaoszczędzić ~ 5 znaków.document.write
tylko część fragmentu stosu, a nie część funkcji, więc i tak się nie liczy.Java 8, 23 (lub 20) bajtów
Zwraca tablicę 3D o wymiarach 448 x 448 x 4 0.
Wypróbuj online.
Wyjaśnienie:
Zwraca macierz 448 x 448 równą 0.
W Javie wartości RGBA mogą być reprezentowane przez liczbę całkowitą . Szesnastkowy
0x00000000
reprezentuje odpowiednio00
czerwony, zielony, niebieski i alfa. I0x00000000
jest równa liczbie całkowitej0
.Wypróbuj online.
źródło
v->new int[448][448]
? Ponieważ kolor można przedstawić w Javie za pomocą liczby całkowitej (RGBA).0-255
jest prawidłową wartością RBGA? Wiem, że to poprawna wartość RGB, ale także RGBA? Prawie nigdy nie używam obrazów w Javie, więc nie znam ich zbyt dobrze. Po prostu oparłem moje 4 wewnętrzne 0 na innych odpowiedziach.0x00000000
pasujące do int. Pierwsze 2 cyfry szesnastkowe to Alfa, następne 2 to czerwony, następne 2 to zielony, ostatnie 2 to niebieski, więc potrzebujesz tylko liczby całkowitej. Zobacz BufferedImage.TYPE_INT_ARGB . Masz 4 wartości podsumowane jako jedna liczba całkowita. I0x00000000
jest równy0
.Java 8
Zapisywanie obrazu do pliku ze ścieżką
s
, 101 bajtówWypróbuj online ... jakoś
Zwracając buforowany obraz, 46 bajtów
Zapis obrazu do pliku
f
, 83 bajtyZrzucanie PNG do STDOUT, 92 bajty (tylko dzięki ASCII!)
Wypróbuj online!
Dzięki Kevinowi za zapisanie bajtu dla drugiego i czwartego rozwiązania!
źródło
()->
w dwóch swoich odpowiedziachv->
, ponieważ dozwolone są puste, niewykorzystane dane wejściowe (do których osobiście korzystamVoid
). Twoje ostatnie TIO byłoby wtedy tym .05AB1E ,
12109 bajtówWypróbuj online.
lub alternatywnie:
Wypróbuj online.
-2 bajty dzięki @Emigna .
-1 bajt dzięki @Adnan .
Generuje listę 3D 048 x 448 x 4.
Wyjaśnienie:
Zobacz moją odpowiedź 05AB1E (sekcja Jak skompresować duże liczby całkowite? ), Aby zrozumieć, dlaczego tak
Ž1Â
jest448
.źródło
Przetwarzanie, 66 bajtów
źródło
Python 2.7, 17 bajtów (22 z nadrukiem)
Z nadrukiem:
Jako zmienna:
Ponieważ tablica RGBA jest dozwolona, to właśnie stworzyłem powyżej, domyślnie wszystkie zera - co oznacza czarny, ale całkowicie przezroczysty.
Wypróbuj online!
źródło
[0]*802816
że to również powinno działać.Galaretka , 8 bajtów
Niladyczne łącze, które daje tablicę 448 na 448 RGBA przezroczystych czarnych pikseli.
Wypróbuj online!
W jaki sposób?
źródło
HTML, 25 bajtów
Czy to jest ważne?
Przetestuj (
background
zastosowano z CSS, abyś mógł go „zobaczyć”)źródło
<svg height=448 width=448
do pliku HTML i otwarcie go powoduje utworzenie pustego pliku<body>
. Jednak z karą 1 bajtu, jeśli piszesz<svg height=448 width=448>
, tworzy<body>
pusty obraz SVG.>
oznacza, że jest to rzeczywiście poprawne, o ile znaczniki się znajdują.<!DOCTYPE html>
,<html>
,<head>
,<style>
,<script>
i wszystko idzie do<body>
. Część dodatkowego kodu jest wymagana do uzyskania pożądanego wyniku. Możesz zobaczyć, że wynikowy kod jest analizowany jako<svg height="448" width="448" < body></svg>
, ponieważ zapisuje go<svg height=448 width=448 </body>
w ramce iframe. W związku z tym nadal uważam, że to nie jest poprawne.C # (interaktywny kompilator Visual C #) , 21 bajtów
Wypróbuj online!
źródło
Rdza -
206201168 bajtówSpowoduje to zapisanie rzeczywistego, czytelnego pliku o.tga, bez żadnych bibliotek ani wbudowanych funkcji, przy użyciu formatu binarnego TGA pod adresem http://paulbourke.net/dataformats/tga/ , poprzez twarde kodowanie szerokości i wysokości w nagłówku pliku binarnego.
-5 bajtów skraca nazwę pliku, naprawia rozmiar obrazu, tylko @ ASCII
źródło
a
działałby tak, jak nazwa pliku nie. btw to 448 * 448, a nie 444 * 444, więc jest to nieprawidłowe[255,0,0,0,0]
6272 razy ([0,0,0,0]
128 razy powtórzone 6272 razy) typ obrazu będzie wówczas.10
nie2
nawet lepiej, colormap dla krótszego RLE (.0,0,0,0
->0
)C # (interaktywny kompilator Visual C #) , 48 bajtów
Wygląda na
[1D array of pixels, width, height]
to, że wyjście jest w porządku, więc daje to krotkę `(IEnumerable pikseli, szerokość, wysokość).Wypróbuj online!
C # (interaktywny kompilator Visual C #) , 58 bajtów
Oryginalna macierz zwracająca odpowiedź.
Ponieważ reguły we / wy obrazu zezwalają na wyprowadzanie jako macierz wartości RGB, to przesłanie generuje macierz wartości RGBA, reprezentowanych przez krotki z czterema wartościami, wszystkie o wartości 0.
Wypróbuj online!
źródło
PHP, 192 bajty
Niestety, PHP w pewnym stopniu jest do bani w tym aspekcie, ponieważ wymaga dużo kodu. Ale z drugiej strony, gdzie PHP nie jest do kitu.
Nie golfowany:
Oczywiście, jeśli chcesz go utworzyć bez wypisywania go, możesz pominąć polecenia
header()
ireadfile()
. Mimo to jest idiotycznie długi.źródło
'<?php return '.var_export(array_fill(0,952576,0),1).';';
do wyeksportowania tablicy w sposób wykonywalny. możesz zrobićphp -f image.php > array.php
, a gdzie indziej możesz zrobić,$array = include('array.php');
aby znów mieć użyteczną tablicę. Ale nie wiem, czy jest poprawny, więc daję ci to, aby dodać jako alternatywę. Lub nawet<?=json_encode(array_fill(0,952576,0));
.true
można go zastąpić1
, aby zapisać 3 bajty. Po przeczytaniu dokumentacjiimagepng()
możesz to zrobićheader('Content-type: image/png');imagepng($i);
. Wierzę, że można również wymienić$b=imagecolorallocatealpha($i,0,0,0,127);imagefill($i,0,0,$b);
zimagefill($i,0,0,imagecolorallocatealpha($i,0,0,0,127));
ale nie zacytować mnie na to.<? imagecolorallocatealpha($i=imagecreate(448,448),0,0,0,127);header('Content-type: image/png');imagepng($i);
utworzyłem przezroczysty obraz (109 bajtów). Automatycznie wysyła obraz do przeglądarki / standardowe wyjście i wszystko.Python 3.7 - PIL Importowany, 30 bajtów
Wymaga to importu, ale ma tę zaletę, że tworzy i wyświetla rzeczywisty plik obrazu zamiast abstrakcyjnej pustej tablicy.
Wyjaśnienie:
Image.show () otworzy obraz w twoim domyślnym programie graficznym. W moim przypadku powoduje to otwarcie tymczasowego pliku bitmapy w przeglądarce zdjęć systemu Windows, ale wyniki mogą się różnić. Prawdopodobnie jest to oszustwo, ponieważ reprezentacja mapy bitowej nie zawiera przezroczystości
Wariacje ...
źródło
Import
.new("LA",[448]*2).show()
26 bajtów.MATLAB, 31 bajtów
Tworzy macierz
NaN
wartości 448 x 448 , a następnie używaimwrite
do zapisania ich w pliku PNG o nazwie'.png'
i ustawia przezroczystość na 1, dzięki czemu jest przezroczysta. Nazwę'Transparency'
parametru można skracać,'tr'
ponieważ MATLAB pozwala na częściowe dopasowanie ciągów nazw parametrów, o ile skrócona wersja jest unikalna wśród dostępnych parametrów.źródło
dzaima / APL + APLP5 ,
1816 bajtówFunkcja generująca obiekt obrazu, który można narysować na ekranie (bez efektu) lub przekonwertować z powrotem na wartości w pikselach.
-2 dzięki ngn !
źródło
{P5.img⍴∘0,⍨448}
Galaretka ,
109 bajtówWypróbuj online!
Wysyła tablicę 448 x 448 x 4
Dzięki @JonathanAllan za uratowanie bajtu.
źródło
2¡
może być⁺
Czerwony , 33 bajty
Domyślnie krycie jest całkowicie nieprzezroczyste (0)
Oto jak go używać / pełny program /:
źródło
MathGolf , 10 bajtów
Wypróbuj online!
Wyjaśnienie
Ta metoda pozwala zaoszczędzić 1 bajt w porównaniu ze „standardowym”
♦7*_4º*a*a*
źródło
JavaScript (Node.js) , 39 bajtów
Najwyraźniej produkujący
[height, width, 1d array of RGBA values]
jest w porządku.Wypróbuj online!
-3 bajty dzięki @Arnauld
źródło
[1D array of pixels, width, height]
[width, height, array]
.SmileBASIC, 27 bajtów
Zapisuje dwuwymiarową tablicę 448x448 wypełnioną zerami do pliku o nazwie
DAT:I
(który jest krótszy niż zdefiniowanie funkcji, która w jakiś sposób zwraca tablicę)Standardowe formaty (używane we wszystkich funkcjach graficznych) kolorów w SmileBASIC to 32-bitowy ARGB i 16-bitowy 5551 RGBA, i
0
oba są przezroczyste.źródło
ARGB
formacie 4-bajtowym (powszechnie stosowane w Smilebasic), podobnie jak0x00000000
Alpha = 0, Red = 0, Green = 0, Blue = 0. Czarny byłby0xFF000000
.GRP
ale zwolnię go, ponieważ rzeczywiste przechowywane dane są takie same.Skróty ScPL dla systemu iOS , 98 bajtów
Skrót iCloud Link
Pobiera przezroczysty gif 1x1 zakodowany jako base64 i zmienia jego rozmiar
źródło
Jstx , 24 bajty
Wyjaśnienie
Wypróbuj online!
źródło
R , 21 bajtów
Wypróbuj online!
Zwraca tablicę 3D zer.
źródło
Japt , 9 bajtów
Wypróbuj online!
źródło
C ++, SFML, 131 bajtów
źródło
JavaScript + HTML, 56 bajtów
Kliknięcie „Uruchom fragment kodu” wygeneruje przezroczysty plik PNG o wymiarach 448 x 448 w ramce IFRAME. Możesz następnie kliknąć prawym przyciskiem myszy „Zapisz obraz jako ...”, aby pobrać go na swój komputer.
źródło