Unbewohnte
3 years ago
commit
d1f81407b3
6 changed files with 975 additions and 0 deletions
@ -0,0 +1,723 @@
|
||||
# This file is automatically @generated by Cargo. |
||||
# It is not intended for manual editing. |
||||
version = 3 |
||||
|
||||
[[package]] |
||||
name = "adler" |
||||
version = "1.0.2" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" |
||||
|
||||
[[package]] |
||||
name = "adler32" |
||||
version = "1.2.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" |
||||
|
||||
[[package]] |
||||
name = "atty" |
||||
version = "0.2.14" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" |
||||
dependencies = [ |
||||
"hermit-abi", |
||||
"libc", |
||||
"winapi", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "autocfg" |
||||
version = "1.1.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" |
||||
|
||||
[[package]] |
||||
name = "bit_field" |
||||
version = "0.10.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4" |
||||
|
||||
[[package]] |
||||
name = "bitflags" |
||||
version = "1.3.2" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" |
||||
|
||||
[[package]] |
||||
name = "bumpalo" |
||||
version = "3.9.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" |
||||
|
||||
[[package]] |
||||
name = "bytemuck" |
||||
version = "1.9.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "cdead85bdec19c194affaeeb670c0e41fe23de31459efd1c174d049269cf02cc" |
||||
|
||||
[[package]] |
||||
name = "byteorder" |
||||
version = "1.4.3" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" |
||||
|
||||
[[package]] |
||||
name = "cfg-if" |
||||
version = "1.0.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" |
||||
|
||||
[[package]] |
||||
name = "charify" |
||||
version = "0.1.0" |
||||
dependencies = [ |
||||
"clap", |
||||
"image", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "clap" |
||||
version = "3.1.8" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "71c47df61d9e16dc010b55dba1952a57d8c215dbb533fd13cdd13369aac73b1c" |
||||
dependencies = [ |
||||
"atty", |
||||
"bitflags", |
||||
"indexmap", |
||||
"os_str_bytes", |
||||
"strsim", |
||||
"termcolor", |
||||
"textwrap", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "color_quant" |
||||
version = "1.1.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" |
||||
|
||||
[[package]] |
||||
name = "crc32fast" |
||||
version = "1.3.2" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" |
||||
dependencies = [ |
||||
"cfg-if", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "crossbeam-channel" |
||||
version = "0.5.4" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" |
||||
dependencies = [ |
||||
"cfg-if", |
||||
"crossbeam-utils", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "crossbeam-deque" |
||||
version = "0.8.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" |
||||
dependencies = [ |
||||
"cfg-if", |
||||
"crossbeam-epoch", |
||||
"crossbeam-utils", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "crossbeam-epoch" |
||||
version = "0.9.8" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" |
||||
dependencies = [ |
||||
"autocfg", |
||||
"cfg-if", |
||||
"crossbeam-utils", |
||||
"lazy_static", |
||||
"memoffset", |
||||
"scopeguard", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "crossbeam-utils" |
||||
version = "0.8.8" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" |
||||
dependencies = [ |
||||
"cfg-if", |
||||
"lazy_static", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "deflate" |
||||
version = "1.0.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f" |
||||
dependencies = [ |
||||
"adler32", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "either" |
||||
version = "1.6.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" |
||||
|
||||
[[package]] |
||||
name = "exr" |
||||
version = "1.4.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "d4badb9489a465cb2c555af1f00f0bfd8cecd6fc12ac11da9d5b40c5dd5f0200" |
||||
dependencies = [ |
||||
"bit_field", |
||||
"deflate", |
||||
"flume", |
||||
"half", |
||||
"inflate", |
||||
"lebe", |
||||
"smallvec", |
||||
"threadpool", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "flate2" |
||||
version = "1.0.22" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" |
||||
dependencies = [ |
||||
"cfg-if", |
||||
"crc32fast", |
||||
"libc", |
||||
"miniz_oxide 0.4.4", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "flume" |
||||
version = "0.10.12" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "843c03199d0c0ca54bc1ea90ac0d507274c28abcc4f691ae8b4eaa375087c76a" |
||||
dependencies = [ |
||||
"futures-core", |
||||
"futures-sink", |
||||
"nanorand", |
||||
"pin-project", |
||||
"spin", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "futures-core" |
||||
version = "0.3.21" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" |
||||
|
||||
[[package]] |
||||
name = "futures-sink" |
||||
version = "0.3.21" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" |
||||
|
||||
[[package]] |
||||
name = "getrandom" |
||||
version = "0.2.6" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" |
||||
dependencies = [ |
||||
"cfg-if", |
||||
"js-sys", |
||||
"libc", |
||||
"wasi", |
||||
"wasm-bindgen", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "gif" |
||||
version = "0.11.3" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "c3a7187e78088aead22ceedeee99779455b23fc231fe13ec443f99bb71694e5b" |
||||
dependencies = [ |
||||
"color_quant", |
||||
"weezl", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "half" |
||||
version = "1.8.2" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" |
||||
|
||||
[[package]] |
||||
name = "hashbrown" |
||||
version = "0.11.2" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" |
||||
|
||||
[[package]] |
||||
name = "hermit-abi" |
||||
version = "0.1.19" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" |
||||
dependencies = [ |
||||
"libc", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "image" |
||||
version = "0.24.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "db207d030ae38f1eb6f240d5a1c1c88ff422aa005d10f8c6c6fc5e75286ab30e" |
||||
dependencies = [ |
||||
"bytemuck", |
||||
"byteorder", |
||||
"color_quant", |
||||
"exr", |
||||
"gif", |
||||
"jpeg-decoder 0.2.4", |
||||
"num-iter", |
||||
"num-rational", |
||||
"num-traits", |
||||
"png", |
||||
"scoped_threadpool", |
||||
"tiff", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "indexmap" |
||||
version = "1.8.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" |
||||
dependencies = [ |
||||
"autocfg", |
||||
"hashbrown", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "inflate" |
||||
version = "0.4.5" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff" |
||||
dependencies = [ |
||||
"adler32", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "jpeg-decoder" |
||||
version = "0.1.22" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" |
||||
|
||||
[[package]] |
||||
name = "jpeg-decoder" |
||||
version = "0.2.4" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "744c24117572563a98a7e9168a5ac1ee4a1ca7f702211258797bbe0ed0346c3c" |
||||
dependencies = [ |
||||
"rayon", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "js-sys" |
||||
version = "0.3.56" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" |
||||
dependencies = [ |
||||
"wasm-bindgen", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "lazy_static" |
||||
version = "1.4.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" |
||||
|
||||
[[package]] |
||||
name = "lebe" |
||||
version = "0.5.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "7efd1d698db0759e6ef11a7cd44407407399a910c774dd804c64c032da7826ff" |
||||
|
||||
[[package]] |
||||
name = "libc" |
||||
version = "0.2.121" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f" |
||||
|
||||
[[package]] |
||||
name = "lock_api" |
||||
version = "0.4.7" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" |
||||
dependencies = [ |
||||
"autocfg", |
||||
"scopeguard", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "log" |
||||
version = "0.4.16" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8" |
||||
dependencies = [ |
||||
"cfg-if", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "memchr" |
||||
version = "2.4.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" |
||||
|
||||
[[package]] |
||||
name = "memoffset" |
||||
version = "0.6.5" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" |
||||
dependencies = [ |
||||
"autocfg", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "miniz_oxide" |
||||
version = "0.4.4" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" |
||||
dependencies = [ |
||||
"adler", |
||||
"autocfg", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "miniz_oxide" |
||||
version = "0.5.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" |
||||
dependencies = [ |
||||
"adler", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "nanorand" |
||||
version = "0.7.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" |
||||
dependencies = [ |
||||
"getrandom", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "num-integer" |
||||
version = "0.1.44" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" |
||||
dependencies = [ |
||||
"autocfg", |
||||
"num-traits", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "num-iter" |
||||
version = "0.1.42" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59" |
||||
dependencies = [ |
||||
"autocfg", |
||||
"num-integer", |
||||
"num-traits", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "num-rational" |
||||
version = "0.4.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a" |
||||
dependencies = [ |
||||
"autocfg", |
||||
"num-integer", |
||||
"num-traits", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "num-traits" |
||||
version = "0.2.14" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" |
||||
dependencies = [ |
||||
"autocfg", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "num_cpus" |
||||
version = "1.13.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" |
||||
dependencies = [ |
||||
"hermit-abi", |
||||
"libc", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "os_str_bytes" |
||||
version = "6.0.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" |
||||
dependencies = [ |
||||
"memchr", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "pin-project" |
||||
version = "1.0.10" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" |
||||
dependencies = [ |
||||
"pin-project-internal", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "pin-project-internal" |
||||
version = "1.0.10" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" |
||||
dependencies = [ |
||||
"proc-macro2", |
||||
"quote", |
||||
"syn", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "png" |
||||
version = "0.17.5" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "dc38c0ad57efb786dd57b9864e5b18bae478c00c824dc55a38bbc9da95dde3ba" |
||||
dependencies = [ |
||||
"bitflags", |
||||
"crc32fast", |
||||
"deflate", |
||||
"miniz_oxide 0.5.1", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "proc-macro2" |
||||
version = "1.0.36" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" |
||||
dependencies = [ |
||||
"unicode-xid", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "quote" |
||||
version = "1.0.17" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58" |
||||
dependencies = [ |
||||
"proc-macro2", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "rayon" |
||||
version = "1.5.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" |
||||
dependencies = [ |
||||
"autocfg", |
||||
"crossbeam-deque", |
||||
"either", |
||||
"rayon-core", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "rayon-core" |
||||
version = "1.9.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" |
||||
dependencies = [ |
||||
"crossbeam-channel", |
||||
"crossbeam-deque", |
||||
"crossbeam-utils", |
||||
"lazy_static", |
||||
"num_cpus", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "scoped_threadpool" |
||||
version = "0.1.9" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" |
||||
|
||||
[[package]] |
||||
name = "scopeguard" |
||||
version = "1.1.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" |
||||
|
||||
[[package]] |
||||
name = "smallvec" |
||||
version = "1.8.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" |
||||
|
||||
[[package]] |
||||
name = "spin" |
||||
version = "0.9.2" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "511254be0c5bcf062b019a6c89c01a664aa359ded62f78aa72c6fc137c0590e5" |
||||
dependencies = [ |
||||
"lock_api", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "strsim" |
||||
version = "0.10.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" |
||||
|
||||
[[package]] |
||||
name = "syn" |
||||
version = "1.0.90" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "704df27628939572cd88d33f171cd6f896f4eaca85252c6e0a72d8d8287ee86f" |
||||
dependencies = [ |
||||
"proc-macro2", |
||||
"quote", |
||||
"unicode-xid", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "termcolor" |
||||
version = "1.1.3" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" |
||||
dependencies = [ |
||||
"winapi-util", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "textwrap" |
||||
version = "0.15.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" |
||||
|
||||
[[package]] |
||||
name = "threadpool" |
||||
version = "1.8.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" |
||||
dependencies = [ |
||||
"num_cpus", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "tiff" |
||||
version = "0.7.1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "0247608e998cb6ce39dfc8f4a16c50361ce71e5b52e6d24ea1227ea8ea8ee0b2" |
||||
dependencies = [ |
||||
"flate2", |
||||
"jpeg-decoder 0.1.22", |
||||
"weezl", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "unicode-xid" |
||||
version = "0.2.2" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" |
||||
|
||||
[[package]] |
||||
name = "wasi" |
||||
version = "0.10.2+wasi-snapshot-preview1" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" |
||||
|
||||
[[package]] |
||||
name = "wasm-bindgen" |
||||
version = "0.2.79" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" |
||||
dependencies = [ |
||||
"cfg-if", |
||||
"wasm-bindgen-macro", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "wasm-bindgen-backend" |
||||
version = "0.2.79" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" |
||||
dependencies = [ |
||||
"bumpalo", |
||||
"lazy_static", |
||||
"log", |
||||
"proc-macro2", |
||||
"quote", |
||||
"syn", |
||||
"wasm-bindgen-shared", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "wasm-bindgen-macro" |
||||
version = "0.2.79" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" |
||||
dependencies = [ |
||||
"quote", |
||||
"wasm-bindgen-macro-support", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "wasm-bindgen-macro-support" |
||||
version = "0.2.79" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" |
||||
dependencies = [ |
||||
"proc-macro2", |
||||
"quote", |
||||
"syn", |
||||
"wasm-bindgen-backend", |
||||
"wasm-bindgen-shared", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "wasm-bindgen-shared" |
||||
version = "0.2.79" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" |
||||
|
||||
[[package]] |
||||
name = "weezl" |
||||
version = "0.1.5" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "d8b77fdfd5a253be4ab714e4ffa3c49caf146b4de743e97510c0656cf90f1e8e" |
||||
|
||||
[[package]] |
||||
name = "winapi" |
||||
version = "0.3.9" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" |
||||
dependencies = [ |
||||
"winapi-i686-pc-windows-gnu", |
||||
"winapi-x86_64-pc-windows-gnu", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "winapi-i686-pc-windows-gnu" |
||||
version = "0.4.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" |
||||
|
||||
[[package]] |
||||
name = "winapi-util" |
||||
version = "0.1.5" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" |
||||
dependencies = [ |
||||
"winapi", |
||||
] |
||||
|
||||
[[package]] |
||||
name = "winapi-x86_64-pc-windows-gnu" |
||||
version = "0.4.0" |
||||
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" |
@ -0,0 +1,10 @@
|
||||
[package] |
||||
name = "charify" |
||||
version = "0.1.0" |
||||
edition = "2021" |
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html |
||||
|
||||
[dependencies] |
||||
image = ">=0.24.1" |
||||
clap = ">=3.1.8" |
@ -0,0 +1,16 @@
|
||||
Copyright (c) 2022 Kasyanov Nikolay Alexeyevich (Unbewohnte) |
||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
of this software and associated documentation files (the "Software"), to deal |
||||
in the Software without restriction, including without limitation the rights |
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
copies of the Software, and to permit persons to whom the Software is |
||||
furnished to do so, subject to the following conditions: |
||||
The above copyright notice and this permission notice shall be included in all |
||||
copies or substantial portions of the Software. |
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
SOFTWARE. |
@ -0,0 +1,28 @@
|
||||
# charify - a command line utility to convert an image to an array of characters |
||||
|
||||
## Usage |
||||
|
||||
`charify [OPTIONS] --image <image> --destination <destination>` |
||||
|
||||
where |
||||
|
||||
- `image` is the path to an existing image |
||||
- `destination` is the path to a newly created text file |
||||
|
||||
and |
||||
|
||||
OPTIONS: |
||||
- `-c, --charset <charset>` |
||||
Set a new character set to use [default: "[' ', '░', '▒', '▓', '█']"] |
||||
|
||||
- `-h, --help` |
||||
Print help information |
||||
|
||||
- `-r, --new_dimensions <new_dimensions>` |
||||
Resize source image to specified dimensions |
||||
|
||||
### Examples |
||||
|
||||
- `charify ~/wallpapers/image.png ~/wallpapers/my_wallpaper_but_in_text.txt` |
||||
- `charify image.jpg textfile.txt -r 500x450` |
||||
- `charify img.png charified.txt -c abcdefg` |
@ -0,0 +1,196 @@
|
||||
/* |
||||
Copyright (c) 2022 Kasyanov Nikolay Alexeyevich (Unbewohnte) |
||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
of this software and associated documentation files (the "Software"), to deal |
||||
in the Software without restriction, including without limitation the rights |
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
copies of the Software, and to permit persons to whom the Software is |
||||
furnished to do so, subject to the following conditions: |
||||
The above copyright notice and this permission notice shall be included in all |
||||
copies or substantial portions of the Software. |
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
SOFTWARE. |
||||
*/ |
||||
|
||||
use std::io::Write; |
||||
use std::process::exit; |
||||
use clap::Arg; |
||||
|
||||
/// returns a character from a character set that corresponds to given brightness
|
||||
fn get_char(charset: &[char], brightness: &u8) -> char { |
||||
let charset_length = charset.len(); |
||||
return charset[((charset_length * *brightness as usize) as u32 / 256) as usize]; |
||||
} |
||||
|
||||
/// returns a complete character map where each character corresponds to brightness in an image point
|
||||
fn charify(charset: &[char], brightness_map: &image::GrayImage) -> Vec<char> { |
||||
let mut character_map: Vec<char> = Vec::with_capacity(brightness_map.len()); |
||||
for point in brightness_map.iter() { |
||||
let character = get_char(charset, point); |
||||
character_map.push(character); |
||||
} |
||||
|
||||
return character_map; |
||||
} |
||||
|
||||
|
||||
fn main() { |
||||
let mut charset: Vec<char> = vec![' ', '░', '▒', '▓', '█']; |
||||
|
||||
let matches = clap::Command::new("charify") |
||||
.version("0.1") |
||||
.author("Kasyanov Nikolay Alexeyevich (Unbewohnte)") |
||||
.arg( |
||||
Arg::new("image") |
||||
.help("Path to an existing image") |
||||
.takes_value(true) |
||||
.required(true) |
||||
.long("image") |
||||
.short('i') |
||||
.index(1) |
||||
) |
||||
.arg( |
||||
Arg::new("destination") |
||||
.help("Path to a newly created text file") |
||||
.takes_value(true) |
||||
.required(true) |
||||
.long("destination") |
||||
.short('d') |
||||
.index(2) |
||||
) |
||||
.arg( |
||||
Arg::new("new_dimensions") |
||||
.help("Resize source image to specified dimensions") |
||||
.takes_value(true) |
||||
.required(false) |
||||
.long("new_dimensions") |
||||
.short('r') |
||||
) |
||||
.arg( |
||||
Arg::new("charset") |
||||
.help("Set a new character set to use") |
||||
.takes_value(true) |
||||
.required(false) |
||||
.long("charset") |
||||
.short('c') |
||||
.default_value(&*format!("{:?}", charset)) |
||||
) |
||||
.get_matches(); |
||||
|
||||
// check source path
|
||||
let source_image_path: &std::path::Path; |
||||
match matches.value_of("image") { |
||||
Some(path) => { |
||||
source_image_path = std::path::Path::new(path); |
||||
} |
||||
None => { |
||||
eprintln!("[ERROR] source image is not specified !"); |
||||
exit(1); |
||||
} |
||||
} |
||||
if !source_image_path.exists() { |
||||
eprintln!("[ERROR] \"{}\" does not exist", source_image_path.display()); |
||||
exit(1); |
||||
} else if !source_image_path.is_file() { |
||||
eprintln!("[ERROR] \"{}\" is not a file", source_image_path.display()); |
||||
} |
||||
|
||||
let mut source_image: image::GrayImage; |
||||
match image::open(source_image_path) { |
||||
Ok(img) => { |
||||
source_image = img.to_luma8(); |
||||
} |
||||
Err(e) => { |
||||
eprintln!("[ERROR] error opening a source image: {}", e); |
||||
exit(1); |
||||
} |
||||
} |
||||
|
||||
// check destination path
|
||||
let destination_file_path: &std::path::Path; |
||||
match matches.value_of("destination") { |
||||
Some(path) => { |
||||
destination_file_path = std::path::Path::new(path); |
||||
} |
||||
None => { |
||||
eprintln!("[ERROR] destination path is not specified !"); |
||||
exit(1); |
||||
} |
||||
} |
||||
match destination_file_path.parent() { |
||||
Some(path) => { |
||||
match std::fs::create_dir_all(path) { |
||||
Ok(_) => {} |
||||
Err(e) => { |
||||
eprintln!("[ERROR] could not create \"{}\": {}", path.display(), e); |
||||
exit(1); |
||||
} |
||||
} |
||||
} |
||||
None => {} |
||||
} |
||||
|
||||
let mut destination_file; |
||||
match std::fs::File::create(destination_file_path) { |
||||
Ok(file) => { |
||||
destination_file = file; |
||||
} |
||||
Err(e) => { |
||||
eprintln!("[ERROR] could not create destination file: {}", e); |
||||
exit(1); |
||||
} |
||||
} |
||||
|
||||
// work with new dimensions if present
|
||||
match matches.value_of("new_dimensions") { |
||||
Some(new_dimensions) => { |
||||
match new_dimensions.split_once('x') { |
||||
Some((nw_str, nh_str)) => { |
||||
let new_width: u32 = nw_str.parse::<u32>().unwrap(); |
||||
let new_height: u32 = nh_str.parse::<u32>().unwrap(); |
||||
|
||||
source_image = image::imageops::resize( |
||||
&source_image, new_width, new_height, |
||||
image::imageops::FilterType::Lanczos3); |
||||
} |
||||
None => {} |
||||
} |
||||
} |
||||
None => {} |
||||
} |
||||
|
||||
// define a new character set if given
|
||||
match matches.value_of("charset") { |
||||
Some(new_charset) => { |
||||
charset.clear(); |
||||
for new_character in new_charset.chars() { |
||||
charset.push(new_character); |
||||
} |
||||
} |
||||
None => {} |
||||
} |
||||
|
||||
// convert an image to a character map
|
||||
let character_map = charify(&charset, &source_image); |
||||
for y in 0..source_image.height() { |
||||
for x in 0..source_image.width() { |
||||
match write!(destination_file, "{}", character_map[(y * source_image.width() + x) as usize]) { |
||||
Ok(_) => {} |
||||
Err(e) => { |
||||
eprintln!("[ERROR] error writing to destination file: {}", e) |
||||
} |
||||
} |
||||
} |
||||
match write!(destination_file, "{}", "\n") { |
||||
Ok(_) => {} |
||||
Err(e) => { |
||||
eprintln!("[ERROR] error writing to destination file: {}", e) |
||||
} |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue