git: 9acec49f64d3 - main - graphics/py-vtracer: New port: Python bindings for the Rust Vtracer raster-to-vector library
Yuri Victorovich <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.cvs.ports |
|---|---|
| Message-ID | <[email protected]> |
The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=9acec49f64d35049489c967f6624935eb54a2025 commit 9acec49f64d35049489c967f6624935eb54a2025 Author: Yuri Victorovich <[email protected]> AuthorDate: 2026-08-07 16:44:42 +0000 Commit: Yuri Victorovich <[email protected]> CommitDate: 2026-08-07 17:18:56 +0000 graphics/py-vtracer: New port: Python bindings for the Rust Vtracer raster-to-vector library --- graphics/Makefile | 1 + graphics/py-vtracer/Makefile | 121 +++++++++++++++++++++++ graphics/py-vtracer/distinfo | 185 +++++++++++++++++++++++++++++++++++ graphics/py-vtracer/files/example.py | 16 +++ graphics/py-vtracer/pkg-descr | 5 + 5 files changed, 328 insertions(+) diff --git a/graphics/Makefile b/graphics/Makefile index 7e156245025c..4ca45e63c59c 100644 --- a/graphics/Makefile +++ b/graphics/Makefile @@ -1082,6 +1082,7 @@ SUBDIR += py-vecrec SUBDIR += py-vispy SUBDIR += py-visvis + SUBDIR += py-vtracer SUBDIR += py-vulkan SUBDIR += py-wand SUBDIR += py-webcolors diff --git a/graphics/py-vtracer/Makefile b/graphics/py-vtracer/Makefile new file mode 100644 index 000000000000..384c9bff9fd9 --- /dev/null +++ b/graphics/py-vtracer/Makefile @@ -0,0 +1,121 @@ +PORTNAME= vtracer +DISTVERSION= 0.6.15 +CATEGORIES= graphics python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +DISTFILES+= ${DISTNAME}${EXTRACT_SUFX} + +MAINTAINER= [email protected] +COMMENT= Python bindings for the Rust Vtracer raster-to-vector library +WWW= https://www.visioncortex.org/vtracer/ \ + https://github.com/visioncortex/vtracer + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}maturin>=1.2:devel/py-maturin@${PY_FLAVOR} + +USES= cargo python +USE_PYTHON= pep517 autoplist concurrent + +CARGO_BUILD= no +CARGO_INSTALL= no + +CARGO_CRATES= adler-1.0.2 \ + adler32-1.2.0 \ + ansi_term-0.12.1 \ + atty-0.2.14 \ + autocfg-1.5.0 \ + bit-vec-0.6.3 \ + bitflags-1.3.2 \ + bitflags-2.11.0 \ + bumpalo-3.20.2 \ + bytemuck-1.25.0 \ + byteorder-1.5.0 \ + cfg-if-0.1.10 \ + cfg-if-1.0.4 \ + clap-2.34.0 \ + color_quant-1.1.0 \ + console_error_panic_hook-0.1.7 \ + console_log-0.2.2 \ + crc32fast-1.5.0 \ + crossbeam-deque-0.8.6 \ + crossbeam-epoch-0.9.18 \ + crossbeam-utils-0.8.21 \ + deflate-0.8.6 \ + either-1.15.0 \ + fastrand-2.3.0 \ + flo_curves-0.3.1 \ + getrandom-0.2.17 \ + gif-0.11.4 \ + hermit-abi-0.1.19 \ + image-0.23.14 \ + indoc-1.0.9 \ + itertools-0.8.2 \ + itoa-1.0.18 \ + jpeg-decoder-0.1.22 \ + js-sys-0.3.91 \ + libc-0.2.183 \ + lock_api-0.4.14 \ + log-0.4.29 \ + memchr-2.8.0 \ + memoffset-0.9.1 \ + miniz_oxide-0.3.7 \ + miniz_oxide-0.4.4 \ + num-integer-0.1.46 \ + num-iter-0.1.45 \ + num-rational-0.3.2 \ + num-traits-0.2.19 \ + once_cell-1.21.4 \ + parking_lot-0.12.5 \ + parking_lot_core-0.9.12 \ + png-0.16.8 \ + proc-macro2-1.0.106 \ + pyo3-0.19.2 \ + pyo3-build-config-0.19.2 \ + pyo3-ffi-0.19.2 \ + pyo3-macros-0.19.2 \ + pyo3-macros-backend-0.19.2 \ + quote-1.0.45 \ + rayon-1.11.0 \ + rayon-core-1.13.0 \ + redox_syscall-0.5.18 \ + roots-0.0.6 \ + rustversion-1.0.22 \ + scoped_threadpool-0.1.9 \ + scopeguard-1.2.0 \ + serde-1.0.228 \ + serde_core-1.0.228 \ + serde_derive-1.0.228 \ + serde_json-1.0.149 \ + smallvec-1.15.1 \ + strsim-0.8.0 \ + syn-1.0.109 \ + syn-2.0.117 \ + target-lexicon-0.12.16 \ + textwrap-0.11.0 \ + tiff-0.6.1 \ + unicode-ident-1.0.24 \ + unicode-width-0.1.14 \ + unindent-0.1.11 \ + vec_map-0.8.2 \ + visioncortex-0.8.10 \ + wasi-0.11.1+wasi-snapshot-preview1 \ + wasm-bindgen-0.2.114 \ + wasm-bindgen-macro-0.2.114 \ + wasm-bindgen-macro-support-0.2.114 \ + wasm-bindgen-shared-0.2.114 \ + web-sys-0.3.91 \ + weezl-0.1.12 \ + winapi-0.3.9 \ + winapi-i686-pc-windows-gnu-0.4.0 \ + winapi-x86_64-pc-windows-gnu-0.4.0 \ + windows-link-0.2.1 \ + zmij-1.0.21 + +TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} + +do-test: + @cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} ${FILESDIR}/example.py + +.include <bsd.port.mk> diff --git a/graphics/py-vtracer/distinfo b/graphics/py-vtracer/distinfo new file mode 100644 index 000000000000..059b0aa08bfa --- /dev/null +++ b/graphics/py-vtracer/distinfo @@ -0,0 +1,185 @@ +TIMESTAMP = 1786115610 +SHA256 (vtracer-0.6.15.tar.gz) = f7f39943d1fc8e9dc82f5360a40e941aaf4c9166d8df30c3f6a2da8cc21dfc52 +SIZE (vtracer-0.6.15.tar.gz) = 19662 +SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe +SIZE (rust/crates/adler-1.0.2.crate) = 12778 +SHA256 (rust/crates/adler32-1.2.0.crate) = aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234 +SIZE (rust/crates/adler32-1.2.0.crate) = 6411 +SHA256 (rust/crates/ansi_term-0.12.1.crate) = d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2 +SIZE (rust/crates/ansi_term-0.12.1.crate) = 24838 +SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8 +SIZE (rust/crates/atty-0.2.14.crate) = 5470 +SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8 +SIZE (rust/crates/autocfg-1.5.0.crate) = 18729 +SHA256 (rust/crates/bit-vec-0.6.3.crate) = 349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb +SIZE (rust/crates/bit-vec-0.6.3.crate) = 19927 +SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a +SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 +SHA256 (rust/crates/bitflags-2.11.0.crate) = 843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af +SIZE (rust/crates/bitflags-2.11.0.crate) = 48906 +SHA256 (rust/crates/bumpalo-3.20.2.crate) = 5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb +SIZE (rust/crates/bumpalo-3.20.2.crate) = 97696 +SHA256 (rust/crates/bytemuck-1.25.0.crate) = c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec +SIZE (rust/crates/bytemuck-1.25.0.crate) = 53466 +SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b +SIZE (rust/crates/byteorder-1.5.0.crate) = 23288 +SHA256 (rust/crates/cfg-if-0.1.10.crate) = 4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822 +SIZE (rust/crates/cfg-if-0.1.10.crate) = 7933 +SHA256 (rust/crates/cfg-if-1.0.4.crate) = 9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801 +SIZE (rust/crates/cfg-if-1.0.4.crate) = 9360 +SHA256 (rust/crates/clap-2.34.0.crate) = a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c +SIZE (rust/crates/clap-2.34.0.crate) = 202210 +SHA256 (rust/crates/color_quant-1.1.0.crate) = 3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b +SIZE (rust/crates/color_quant-1.1.0.crate) = 6649 +SHA256 (rust/crates/console_error_panic_hook-0.1.7.crate) = a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc +SIZE (rust/crates/console_error_panic_hook-0.1.7.crate) = 507196 +SHA256 (rust/crates/console_log-0.2.2.crate) = e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f +SIZE (rust/crates/console_log-0.2.2.crate) = 28932 +SHA256 (rust/crates/crc32fast-1.5.0.crate) = 9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511 +SIZE (rust/crates/crc32fast-1.5.0.crate) = 40723 +SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51 +SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471 +SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e +SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875 +SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28 +SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691 +SHA256 (rust/crates/deflate-0.8.6.crate) = 73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174 +SIZE (rust/crates/deflate-0.8.6.crate) = 62365 +SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719 +SIZE (rust/crates/either-1.15.0.crate) = 20114 +SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be +SIZE (rust/crates/fastrand-2.3.0.crate) = 15076 +SHA256 (rust/crates/flo_curves-0.3.1.crate) = 1c227ffb4f98baa9073c033e23243089d0ed3dd1f5cd620894452074db48a29b +SIZE (rust/crates/flo_curves-0.3.1.crate) = 832811 +SHA256 (rust/crates/getrandom-0.2.17.crate) = ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0 +SIZE (rust/crates/getrandom-0.2.17.crate) = 40780 +SHA256 (rust/crates/gif-0.11.4.crate) = 3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06 +SIZE (rust/crates/gif-0.11.4.crate) = 634244 +SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33 +SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979 +SHA256 (rust/crates/image-0.23.14.crate) = 24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1 +SIZE (rust/crates/image-0.23.14.crate) = 226804 +SHA256 (rust/crates/indoc-1.0.9.crate) = bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306 +SIZE (rust/crates/indoc-1.0.9.crate) = 13475 +SHA256 (rust/crates/itertools-0.8.2.crate) = f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484 +SIZE (rust/crates/itertools-0.8.2.crate) = 89203 +SHA256 (rust/crates/itoa-1.0.18.crate) = 8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682 +SIZE (rust/crates/itoa-1.0.18.crate) = 15935 +SHA256 (rust/crates/jpeg-decoder-0.1.22.crate) = 229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2 +SIZE (rust/crates/jpeg-decoder-0.1.22.crate) = 228366 +SHA256 (rust/crates/js-sys-0.3.91.crate) = b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c +SIZE (rust/crates/js-sys-0.3.91.crate) = 91416 +SHA256 (rust/crates/libc-0.2.183.crate) = b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d +SIZE (rust/crates/libc-0.2.183.crate) = 816918 +SHA256 (rust/crates/lock_api-0.4.14.crate) = 224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965 +SIZE (rust/crates/lock_api-0.4.14.crate) = 29249 +SHA256 (rust/crates/log-0.4.29.crate) = 5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897 +SIZE (rust/crates/log-0.4.29.crate) = 51515 +SHA256 (rust/crates/memchr-2.8.0.crate) = f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79 +SIZE (rust/crates/memchr-2.8.0.crate) = 97780 +SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a +SIZE (rust/crates/memoffset-0.9.1.crate) = 9032 +SHA256 (rust/crates/miniz_oxide-0.3.7.crate) = 791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435 +SIZE (rust/crates/miniz_oxide-0.3.7.crate) = 44996 +SHA256 (rust/crates/miniz_oxide-0.4.4.crate) = a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b +SIZE (rust/crates/miniz_oxide-0.4.4.crate) = 49938 +SHA256 (rust/crates/num-integer-0.1.46.crate) = 7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f +SIZE (rust/crates/num-integer-0.1.46.crate) = 22331 +SHA256 (rust/crates/num-iter-0.1.45.crate) = 1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf +SIZE (rust/crates/num-iter-0.1.45.crate) = 10320 +SHA256 (rust/crates/num-rational-0.3.2.crate) = 12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07 +SIZE (rust/crates/num-rational-0.3.2.crate) = 26359 +SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841 +SIZE (rust/crates/num-traits-0.2.19.crate) = 51631 +SHA256 (rust/crates/once_cell-1.21.4.crate) = 9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50 +SIZE (rust/crates/once_cell-1.21.4.crate) = 35010 +SHA256 (rust/crates/parking_lot-0.12.5.crate) = 93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a +SIZE (rust/crates/parking_lot-0.12.5.crate) = 46735 +SHA256 (rust/crates/parking_lot_core-0.9.12.crate) = 2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1 +SIZE (rust/crates/parking_lot_core-0.9.12.crate) = 34110 +SHA256 (rust/crates/png-0.16.8.crate) = 3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6 +SIZE (rust/crates/png-0.16.8.crate) = 52598 +SHA256 (rust/crates/proc-macro2-1.0.106.crate) = 8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934 +SIZE (rust/crates/proc-macro2-1.0.106.crate) = 59765 +SHA256 (rust/crates/pyo3-0.19.2.crate) = e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38 +SIZE (rust/crates/pyo3-0.19.2.crate) = 418228 +SHA256 (rust/crates/pyo3-build-config-0.19.2.crate) = 076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5 +SIZE (rust/crates/pyo3-build-config-0.19.2.crate) = 29206 +SHA256 (rust/crates/pyo3-ffi-0.19.2.crate) = e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9 +SIZE (rust/crates/pyo3-ffi-0.19.2.crate) = 66500 +SHA256 (rust/crates/pyo3-macros-0.19.2.crate) = dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1 +SIZE (rust/crates/pyo3-macros-0.19.2.crate) = 7173 +SHA256 (rust/crates/pyo3-macros-backend-0.19.2.crate) = 947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536 +SIZE (rust/crates/pyo3-macros-backend-0.19.2.crate) = 49962 +SHA256 (rust/crates/quote-1.0.45.crate) = 41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924 +SIZE (rust/crates/quote-1.0.45.crate) = 31564 +SHA256 (rust/crates/rayon-1.11.0.crate) = 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f +SIZE (rust/crates/rayon-1.11.0.crate) = 182470 +SHA256 (rust/crates/rayon-core-1.13.0.crate) = 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91 +SIZE (rust/crates/rayon-core-1.13.0.crate) = 73151 +SHA256 (rust/crates/redox_syscall-0.5.18.crate) = ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d +SIZE (rust/crates/redox_syscall-0.5.18.crate) = 30747 +SHA256 (rust/crates/roots-0.0.6.crate) = 84348444bd7ad45729d0c49a4240d7cdc11c9d512c06c5ad1835c1ad4acda6db +SIZE (rust/crates/roots-0.0.6.crate) = 29110 +SHA256 (rust/crates/rustversion-1.0.22.crate) = b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d +SIZE (rust/crates/rustversion-1.0.22.crate) = 21096 +SHA256 (rust/crates/scoped_threadpool-0.1.9.crate) = 1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8 +SIZE (rust/crates/scoped_threadpool-0.1.9.crate) = 7800 +SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49 +SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619 +SHA256 (rust/crates/serde-1.0.228.crate) = 9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e +SIZE (rust/crates/serde-1.0.228.crate) = 83652 +SHA256 (rust/crates/serde_core-1.0.228.crate) = 41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad +SIZE (rust/crates/serde_core-1.0.228.crate) = 63111 +SHA256 (rust/crates/serde_derive-1.0.228.crate) = d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79 +SIZE (rust/crates/serde_derive-1.0.228.crate) = 59605 +SHA256 (rust/crates/serde_json-1.0.149.crate) = 83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86 +SIZE (rust/crates/serde_json-1.0.149.crate) = 155994 +SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03 +SIZE (rust/crates/smallvec-1.15.1.crate) = 38116 +SHA256 (rust/crates/strsim-0.8.0.crate) = 8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a +SIZE (rust/crates/strsim-0.8.0.crate) = 9309 +SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237 +SIZE (rust/crates/syn-1.0.109.crate) = 237611 +SHA256 (rust/crates/syn-2.0.117.crate) = e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99 +SIZE (rust/crates/syn-2.0.117.crate) = 306011 +SHA256 (rust/crates/target-lexicon-0.12.16.crate) = 61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1 +SIZE (rust/crates/target-lexicon-0.12.16.crate) = 26488 +SHA256 (rust/crates/textwrap-0.11.0.crate) = d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060 +SIZE (rust/crates/textwrap-0.11.0.crate) = 17322 +SHA256 (rust/crates/tiff-0.6.1.crate) = 9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437 +SIZE (rust/crates/tiff-0.6.1.crate) = 1399263 +SHA256 (rust/crates/unicode-ident-1.0.24.crate) = e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75 +SIZE (rust/crates/unicode-ident-1.0.24.crate) = 49298 +SHA256 (rust/crates/unicode-width-0.1.14.crate) = 7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af +SIZE (rust/crates/unicode-width-0.1.14.crate) = 271615 +SHA256 (rust/crates/unindent-0.1.11.crate) = e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c +SIZE (rust/crates/unindent-0.1.11.crate) = 7700 +SHA256 (rust/crates/vec_map-0.8.2.crate) = f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191 +SIZE (rust/crates/vec_map-0.8.2.crate) = 14466 +SHA256 (rust/crates/visioncortex-0.8.10.crate) = 7c9a7e6cc136c7c79b4adbd311c46c323a19db7baf446822b5f90f84375934e3 +SIZE (rust/crates/visioncortex-0.8.10.crate) = 70050 +SHA256 (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b +SIZE (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477 +SHA256 (rust/crates/wasm-bindgen-0.2.114.crate) = 6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e +SIZE (rust/crates/wasm-bindgen-0.2.114.crate) = 59350 +SHA256 (rust/crates/wasm-bindgen-macro-0.2.114.crate) = 18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6 +SIZE (rust/crates/wasm-bindgen-macro-0.2.114.crate) = 9289 +SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.114.crate) = 03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3 +SIZE (rust/crates/wasm-bindgen-macro-support-0.2.114.crate) = 63445 +SHA256 (rust/crates/wasm-bindgen-shared-0.2.114.crate) = 75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16 +SIZE (rust/crates/wasm-bindgen-shared-0.2.114.crate) = 10538 +SHA256 (rust/crates/web-sys-0.3.91.crate) = 854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9 +SIZE (rust/crates/web-sys-0.3.91.crate) = 669788 +SHA256 (rust/crates/weezl-0.1.12.crate) = a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88 +SIZE (rust/crates/weezl-0.1.12.crate) = 46045 +SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419 +SIZE (rust/crates/winapi-0.3.9.crate) = 1200382 +SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6 +SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815 +SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f +SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998 +SHA256 (rust/crates/windows-link-0.2.1.crate) = f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5 +SIZE (rust/crates/windows-link-0.2.1.crate) = 6133 +SHA256 (rust/crates/zmij-1.0.21.crate) = b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa +SIZE (rust/crates/zmij-1.0.21.crate) = 26665 diff --git a/graphics/py-vtracer/files/example.py b/graphics/py-vtracer/files/example.py new file mode 100644 index 000000000000..7a32fb2a9d38 --- /dev/null +++ b/graphics/py-vtracer/files/example.py @@ -0,0 +1,16 @@ +import urllib.request +import vtracer + +# 1. Define file paths and download target +url = "https://forums.freebsd.org/attachments/image_widget_w0nk11mh60i71-png.14467/index.png" +input_path = "bsd-logo.png" +output_path = "bsd-logo.svg" + +print("Downloading the PNG image...") +urllib.request.urlretrieve(url, input_path) + +# 2. Convert the downloaded image to SVG +print("Converting image to SVG...") +vtracer.convert_image_to_svg_py(input_path, output_path) + +print(f"Successfully saved vector graphic to {output_path}!") diff --git a/graphics/py-vtracer/pkg-descr b/graphics/py-vtracer/pkg-descr new file mode 100644 index 000000000000..1e18257575ec --- /dev/null +++ b/graphics/py-vtracer/pkg-descr @@ -0,0 +1,5 @@ +Python bindings for the Rust Vtracer raster-to-vector library. + +Vtracer converts raster images into scalable vector graphics (SVG). The Python +bindings expose the cmdapp crate as a Python module built with PyO3 and +maturin.