From 6b7683a1437e2670a44c4fccd66cda3fc4c9743d Mon Sep 17 00:00:00 2001 From: reidlab Date: Sat, 7 Oct 2023 20:19:07 -0700 Subject: [PATCH] update docs --- Cargo.lock | 2 +- Cargo.toml | 2 +- readme.md | 49 +++++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 33e261f..4a2131d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -192,7 +192,7 @@ dependencies = [ [[package]] name = "gd-icon-renderer" -version = "1.0.0" +version = "1.0.1" dependencies = [ "image", "imageproc", diff --git a/Cargo.toml b/Cargo.toml index f8efb09..9e286ae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gd-icon-renderer" description = "A tool to render Geometry Dash icons." -version = "1.0.0" +version = "1.0.1" edition = "2021" license-file = "LICENSE" repository = "https://git.reidlab.online/reidlab/gd-icon-renderer" diff --git a/readme.md b/readme.md index 0229fc3..4e9581c 100644 --- a/readme.md +++ b/readme.md @@ -1,14 +1,47 @@ # gd-icon-renderer -A rust Geometry Dash icon renderer. Shhout out to [gd-icon-renderer](https://github.com/oatmealine/gd-icon-renderer), this project is just a rewrite but not in libvips and crystal +A rust Geometry Dash icon renderer. Shout out to [gd-icon-renderer](https://github.com/oatmealine/gd-icon-renderer), this project is just a rewrite but not in [`libvips`](https://www.libvips.org/) and [`crystal-lang`](https://crystal-lang.org/) for mostly personal use. -## usage +[![Docs](https://img.shields.io/docsrs/gd-icon-renderer)](https://docs.rs/gd-icon-renderer/latest) +![Version](https://img.shields.io/crates/v/gd-icon-renderer) -Provide your `GJ_GameSheet02-uhd`, `GJ_GameSheetGlow-uhd`, `Robot_AnimDesc2`, and `Spider_AnimDesc2` files along with their corresponding `*.plist` files. +## Usage -## todo +Provide your `GJ_GameSheet02-uhd`, `GJ_GameSheetGlow-uhd`, `Robot_AnimDesc2`, and `Spider_AnimDesc2` files along with their corresponding `*.plist` files. Rendering an icon is as follows: -- swap to a custom plist parser -- change zany anim to argument -- trim empty alpha space -- i think theres some weird shifting and offsets going on. investigate plz. really big on spider 16 for some reason???? related issue here: [issue #2, oatmealine/gd-icon-renderer](https://github.com/oatmealine/gd-icon-renderer/issues/2) \ No newline at end of file +1. Import the library: + + ```rs + use gd_icon_renderer; + ``` + +2. Load your spritesheets: + + ```rs + // Replace filepaths for whatever you need for your usecase + let game_sheet_02 = gd_icon_renderer::assets::load_spritesheet("assets/GJ_GameSheet02-uhd.plist"); + let game_sheet_glow = gd_icon_renderer::assets::load_spritesheet("assets/GJ_GameSheetGlow-uhd.plist"); + let robot_sheet = gd_icon_renderer::assets::load_animations("assets/Robot_AnimDesc2.plist"); + let spider_sheet = gd_icon_renderer::assets::load_animations("assets/Spider_AnimDesc2.plist"); + ``` + +3. Render the icon out: + + ```rs + let icon_img = gd_icon_renderer::renderer::render_icon("ship", 44, [0.0, 0.0, 0.0], [255.0/255.0, 125.0/255.0, 125.0/255.0], true, game_sheet_02, game_sheet_glow, robot_sheet, spider_sheet); + ``` + + You'll now be given a [`DynamicImage`](https://docs.rs/image/latest/image/enum.DynamicImage.html) + +4. You'll most likely want to save the resulting image somewhere: + + ```rs + icon_img.save("icon_rendered.png").unwrap(); + ``` + +## Todo + +- Add examples to the repo. +- Swap to a custom `plist` parser. Current one is **SLOW**. +- Trim extra alpha space on the final result. +- I think theres some weird shifting and offsets going on, please investigate 🥺. Really big on `spider_16` for some reason?? Related issue on the inspired project [here](https://github.com/oatmealine/gd-icon-renderer/issues/2). \ No newline at end of file