"Mari kita hadapi itu, gambar selaras seperti hadiah kecil dari Surga. Selamat datang, tapi tak terduga." - Geobit
+10000 reputasi bagi siapa pun yang memenangkan tantangan ini.
Aturan:
1) Anda harus membuat program.
2) Input akan berupa gambar, namun apakah dilewatkan sebagai file atau daftar angka terserah Anda.
3) Output akan berupa file yang ketika dibuka dalam cat (atau serupa) akan menunjukkan gambar selaras.
4) Ukuran kanvas akan selalu antara 100 x 100 dan 2000 x 2000 piksel. Itu akan selalu menjadi persegi panjang, tetapi tidak selalu persegi.
5) Tidak ada pengkodean gambar atau sulap URL yang funky.
6) Tidak ada perpustakaan eksternal yang digunakan.
Panduan untuk Sentralisasi (Varian Joshpbarron)
Sebuah gambar akan didefinisikan sebagai terpusat jika putih pertama (255.255.255,> 0 rgba) atau transparan (x, y, z, 0 rgba) pada suatu sumbu adalah jarak yang sama (plus atau minus 1 piksel) dari tepi kanvas.
Ini dapat dicapai (dan akan diverifikasi oleh) metode berikut.
1) Bayangkan sebuah kotak pembatas di sekitar objek. (Garis hitam ditambahkan untuk bantuan)
2) Gerakkan objek di sekitar sampai tepi objek berjarak sama dari tepi kanvas yang sesuai.
3) Sekarang lupakan garis hitam.
Memasukkan:
Keluaran:
Masukan lebih banyak di sini .
Dan output masing-masing di sini .
Rep +10000 adalah bohong.
sumber
Jawaban:
Python 3,
120205 byteEDIT : Karena gambar output harus memiliki ukuran yang sama dengan input, skrip menjadi lebih panjang ...
EDIT2 : Tampaknya aturan 6 (tidak ada perpustakaan eksternal) telah ditambahkan setelah saya menjawab, jadi jawaban ini tetap dianggap tidak valid :(
Versi sebelumnya hanya memotong gambar input:
kedua skrip membaca nama file gambar dari stdin, dan menyimpan gambar output sebagai 'o.png'. sebagai contoh :
Ini menerima setidaknya gambar PNG (berpotensi dengan saluran alfa) - Diuji 'ok' pada set yang disediakan oleh penanya.
... menunggu hadiah saya):
sumber
python3 script.py <<< s2rMqYo.png
lebih bersihHTML5 + JavaScript (ES5), 515 byte
Hitungan itu termasuk tag HTML karena merupakan bagian dari program. Jika Anda hanya menghitung kode pemrosesan gambar, itu adalah 376 byte termasuk pembungkus fungsi.
Memasukkan
URL ke gambar.
Pembatasan keamanan
Karena program ini berjalan di lingkungan browser, hanya URL ke gambar yang mendukung CORS yang akan berfungsi. Imgur diaktifkan CORS.
IE 10 tidak mendukung CORS. Saya belum menguji di IE 11, tetapi itu berfungsi di Chrome dan Firefox.
Bagaimana cara menjalankannya
Keluaran
Ini output pada kanvas di halaman.
Karena ini adalah aplikasi berbasis browser, pembatasan keamanan mencegah pengunduhan otomatis file tetapi Anda dapat mengklik kanan dan menyimpan gambar di Chrome dan Firefox. Saya belum menguji pada IE 11.
Demo
Kode JavaScript telah dihapus dari
script
elemen dan dimasukkan ke area yang sesuai untuk mengakomodasi Stack Snippets:sumber
Memproses 2 -
323450Gambar dibaca dari file f.png di folder data sketsa. Tempatkan gambar dan tentukan batasnya. Menghitung posisi yang benar dan mengganti gambar yang digeser dengan benar.
versi yang dapat dibaca:
Contoh output:
Anda dapat memproses di sini
sumber
PImage p=loadImage("h.png");
di bagian paling atas.color(-1)
danbackground(-1)
masing-masing 1 byte lebih pendek daricolor(255)
danbackground(255)
masing - masing. Dan saya pikir Anda dapat menghapusP2D
dalamsize
panggilan