Anda cukup mengambil gambar ini dan membuat setiap warna menambahkan satu ke setiap digit heksadesimal. Sebagai contoh, #49de5f
akan menjadi #5aef60
(dengan 9
perulangan ke a
, dan f
perulangan ke 0
.)
Ini juga berarti bahwa semua putih ( #ffffff
) akan menjadi hitam ( #000000
) karena semua f
loop kembali ke 0
, tetapi semua hitam akan menjadi warna yang lebih terang dari hitam ( #111111
).
Penilaian didasarkan pada jumlah byte yang paling sedikit digunakan, karena ini adalah pertanyaan kode-golf .
Gunakan gambar di bawah ini sebagai gambar input untuk kode Anda, dan masukkan gambar output kode Anda ke dalam jawaban Anda.
Jika Anda mau, Anda juga dapat menggunakan gambar pelangi lainnya ini:
ef
byte (yang seharusnya menjadif0
berlawanan dengan00
yang terjadi ketika Anda baru saja menambahkan 17 dan mengambil mod 256).Jawaban:
Pyke,
1713 byteCoba di sini!
Mengambil input sebagai array integer 3d piksel dan output dalam format yang sama
sumber
Mathematica, 78 byte
Mengambil dan mengembalikan objek gambar (untuk membuat objek gambar, cukup tempel gambar ke dalam Mathematica).
Hasil untuk test case:
Mengambil input dan mengembalikan output sebagai array 3D dari nilai saluran integer, ini berkurang menjadi 51 byte :
Tetapi postingan meta itu belum memiliki jumlah dukungan yang besar, jadi saya akan menggunakan versi 78-byte untuk saat ini.
sumber
Verilog, 220 byte:
Saat ini tidak jelas bagaimana dimensi harus disediakan dan apakah array akan di-stream atau disediakan sekaligus. Saya akan mengalirkannya 8 bit pada satu waktu menggunakan sinyal jam (dengan flag data-valid yang menjadi rendah setelah seluruh gambar diproses) dan input / output dimensi sebagai bilangan bulat 32-bit:
sumber
Python, 226 byte
Sekarang sah!
Gunakan perpustakaan Bantal.
Keluaran:
Terima kasih kepada @TuukkaX karena telah menghemat 9 byte!
Terima kasih kepada @ mbomb007 untuk menghemat 18 byte!
sumber
0xFF
bukan255
?0xFF
di sana: Dfrom PIL import*
. Saya juga berpikir ituImage.open
bisa diubah menjadiopen
setelah itu.from PIL import*
, tetapi saya tidak bisa mengubahImage.open
Dyalog APL ,
2115 byteSaya menganggap output mungkin dalam format yang sama.
Solusi baru mengambil matriks nilai [[ r , g , b , r , g , b ], [ r , g , b , ...
Penjelasan
⎕
dapatkan16 16⊤
konversi input numerik ke basis 2-digit 161+
tambahkan 1, yaitu 0 → 1, 1 → 2, 15 → 1616|
modulus 16, yaitu 16 → 016⊥
konversi dari basis 16Contoh
Solusi 21 byte lama menggunakan matriks [["RRGGBB", "RRGGBB"], ["RRGGBB", ...
Kebutuhan
⎕IO←0
, yang merupakan standar pada banyak sistem.Penjelasan
{
…}¨
Untuk setiap string RGB 6-char, nyatakan sebagai⍵
dan lakukan:n←⎕D,⎕A
tetapkan "0 ... 9A ... Z" untuk n⍵⍳⍨
menemukan indeks masing-masing karakter dalam n1+
tambahkan satu ke indeks, yaitu 0 → 1, 1 → 2, 15 → 1616|
modulus 16, yaitu 16 → 0n[
…]
gunakan itu untuk mengindeks ke nContoh
sumber
C -
1141137066617267 byteBerikut kodenya (dengan dukungan untuk test case Martin Ender (tanpa 60b)):
Dan di sini adalah versi yang kurang dikaburkan:
Kompilasi dan jalankan bersama
gcc -o color colorgolf.c && cat a.bmp | ./color > b.bmp
Mendukung kode ini bekerja dengan bitmap . Untuk mengonversi
png
file menjadibmp
, saya menggunakan perintah berikut:convert -flatten -alpha off png.png a.bmp
Kode mengasumsikan, panjang
bmp
header itu 54 byte - dalam hal ini berfungsi, tapi saya tidak yakin apakah saya tidak diam-diam memecahkan sesuatu.Juga, ini pelangi:
sumber
Java 142 byte
Golf:
sumber
i
parameter sebagai dan di-untuk-loop, jadi saya akan mengubah parameter ke sesuatu yang lain sepertia
. Juga, Anda dapat golf lagi dengan menghapusint
di depanj
dan menambahkannya keint i
. Jadi seperti ini:BufferedImage t(BufferedImage a){for(int i=-1,j;++i<a.getWidth();)for(j=-1;++j<a.getHeight();)a.setRGB(i,j,a.getRGB(i,j)+1118481);return a;}
. Juga, lihat posting ini: Tips untuk bermain golf di Jawa . :)R, 302 byte
Jauh dari sempurna, tetapi begini:
Penjelasan:
sumber