Coder Social home page Coder Social logo

andylinpersonal / lv_img_conv Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lvgl/lv_img_conv

0.0 0.0 0.0 3.4 MB

Image converter for LVGL, written in JS

Home Page: https://lvgl.github.io/lv_img_conv/

License: Other

Shell 0.05% JavaScript 0.07% Perl 0.05% TypeScript 96.28% HTML 3.45% Dockerfile 0.10%

lv_img_conv's Introduction

Image converter for LVGL

How to install

  1. Make sure Node.js is installed.
  2. On Linux make sure the followings are installed: sudo apt install gcc make g++ pkg-config libpixman-1-dev libcairo2-dev libpango1.0-dev libjpeg8-dev libgif-dev
  3. Not always needed, but recommended: ensure the necessary native dependencies for canvas are installed.
  4. Clone this repository.
  5. Run npm install to install needed dependencies.

NOTE: For Docker instructions skip ahead

Extra steps for Windows

  1. Run 'npm install -g typescript'
  2. Move to 'lib' folder 'cd lib'
  3. Run 'npm install -g ts-node'

Note: The converter might fail on Windows if the file path containes multiple byte characters (Chinese/Japanese/Korean characters etc.). It's recommended to rename these files before passing them to the converter, or you can switch on enable Beta:Use Unicode UTF-8 for worldwide language support options.

Example usage:

For Linux:

# C format
./lv_img_conv.js logo_lvgl.png -f -c CF_TRUE_COLOR_ALPHA
# Binary format (RGB565)
./lv_img_conv.js logo_lvgl.png -f -c CF_TRUE_COLOR_ALPHA -t bin --binary-format 565
# C format with dither algoritm
./lv_img_conv.js logo_lvgl.png -f -d true -c CF_TRUE_COLOR_ALPHA

For Windows:

# C format
ts-node cli.ts logo_lvgl.png -f -c CF_TRUE_COLOR_ALPHA
# Binary format (RGB565)
ts-node cli.ts logo_lvgl.png -f -c CF_TRUE_COLOR_ALPHA -t bin --binary-format 565
# C format with dither algoritm
ts-node cli.ts logo_lvgl.png -f -d true -c CF_TRUE_COLOR_ALPHA

A file called logo_lvgl.c will be created in the same directory.

Example usage with Docker:

Building locally

docker build -t lv_img_conv .

Run lv_img_conv.js directly

docker run --rm \
    -u 1000:1000 \
    -v /path/to/project:/usr/src/proj \
    lv_img_conv \
    <lv_img_conv.js arguments>

Run interactive shell

docker run -it --rm \
    -u 1000:1000 \
    -v /path/to/project:/usr/src/proj \
    lv_img_conv

lv_img_conv.js is in the $PATH and callable from the interactive shell.

Parameters

Parameter Function
-u 1000:1000 Set to your host user's UID/GID, unless you don't mind root ownership on output files
-v /path/to/project:/usr/src/proj Change /path/to/project to directory with image(s) to convert

Attribution

This converter was originally created by @embeddedt as an attempt to solve some of the common issues experienced with the PHP converter, such as running out of memory on large images or failing to read certain PNGs correctly.

Much of the actual conversion logic remains unchanged from the previous implementation, which can be found at https://github.com/lvgl/lv_utils/blob/b298fe71675e9c12016adabcc8889394b477b89b/img_conv_core.php.

lv_img_conv's People

Contributors

embeddedt avatar kisvegabor avatar yohannfra avatar gokhannsahin avatar robert-alfaro avatar higaski avatar zjanosy avatar fralonra avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.