Animasi dengan semua warna

11

Tahun lalu, ada tantangan yang sangat populer untuk membuat gambar yang mengandung setiap warna RGB 24-bit .

Tantangan saya adalah membuat animasi yang halus (katakanlah 24 frame), di mana warna setiap piksel dari setiap frame unik. Saya juga akan mengizinkan duplikasi warna selama setiap warna muncul jumlah kali yang sama (lebih besar dari 0) , karena jika tidak animasinya harus pendek, atau bingkai kecil.

Saya telah menghasilkan beberapa contoh di sini , berdasarkan solusi yang menang untuk versi 2d. Sayangnya, sepertinya Anda tidak dapat menyematkan video, jadi tautan harus dilakukan.

sobe86
sumber
1
Seseorang sudah melakukan animasi dalam jawaban ini dari pertanyaan yang ditautkan. Saya tidak yakin apakah itu memenuhi kriteria.
mbomb007
1
Sedikit lebih banyak spesifikasi teknis akan menyenangkan. Apa yang dimaksud dengan "membuat"? Render video ke disk? Tampilkan animasi waktu nyata?
mınxomaτ
Anda bisa menggunakan gif ...
wizzwizz4
1
@ wizzwizz4 a GIF tidak dapat menampung lebih dari 256 warna; sehingga Anda dapat membuat gambar 16x16 dengan warna berbeda untuk setiap piksel - dan tidak memiliki ruang tersisa untuk animasi.
Titus

Jawaban:

4

Mathematica

Ini adalah implementasi langsung dengan setiap warna rgb menempati persimpangan dalam kotak 256 oleh 256 oleh 256 unit.

Jerkiness tampaknya menjadi artefak dari video, bukan kesalahan dalam data, yang harus tepat.

nilai merah meningkat ke bawah, nilai hijau meningkat ke kanan, dan nilai biru meningkat dengan bingkai.

Mungkin saya akan mencampuradukkan hal-hal nanti.

f@b_ := Image@Table[{r, g, b}/255, {r, 0, 255}, {g, 0, 255}]
Export["c.mov", Table[f@b, {b, 0, 255}]]

Klip QuickTime

DavidC
sumber
Ini membingungkan. Ini berfungsi untuk saya dan izin ditetapkan bagi siapa saja untuk mengaksesnya. Apakah Anda dapat memutar video lain di vimeo.com?
DavidC
Itu berfungsi sekarang, untuk beberapa alasan.
Fatalkan
senang mendengarnya.
DavidC
0

PHP (+ HTML) + JavaScript

Bagian 1
menghasilkan 256 gambar dengan nilai merah berbeda dari 0 hingga 255;
nilai hijau = indeks baris, nilai biru = indeks kolom

for($r=$h=256;$r--;){$i=imagecreatetruecolor($g=$h,$h);for(;$g--;)for($b=$h;$b--;)imagesetpixel($i,$g,$b,imagecolorallocate($i,$r,$g,$b));imagepng($i,"$r.png");imagedestroy($i);}

Catatan : Bergantung pada implementasi PHP Anda, ini dapat menimbulkan kesalahan server internal.
Jika ya, ambil jumlah gambar terendah yang sudah dibuat, masukkan <number>,setelah $r=dan jalankan lagi.

Bagian 2
loop melalui gambar-gambar ini dari 0 hingga 255 dan kembali (0 dan 255 masing-masing mengambil 2 frame)

<img><script>r=d=0;setInterval(()=>{document.images[0].src=r+".png",(d?!r--:(++r)>=256)?r-=(d=!d)?1:-1:r},40);</script>
Titus
sumber