Giter VIP home page Giter VIP logo

imgscal's Introduction

icon ImgScal

Automate image processing programmatically.

  • Built around concurrency.
  • Workflows writteng in lua.
  • Builtin handling for image encodings and color models.
  • Included ImGui wrapper for building custom GUI tools.
  • Spritesheet support.
  • Command-line support, e.g. imgscal resize ./image.png 100 100.

Documentation - Live

Run make doc to generate the lua api documentation to ./docs/.

Run

make start
# or
make dev
  • make dev runs make install-examples then make start.
  • Use make start for a first time launch, as make install-examples requires a valid config.

Examples

Examples can be installed by running make install-examples. This requires ImgScal to have been run at least once, as the config file and workflow directory must exist.

GUI/Imger - Source

Demo worflow that creates an interface with controls to apply filters from the Imger library onto images.

imger example

GUI/Noise - Source

Demo workflow that creates an interface with controls to generate noise maps.

noise example

GUI/Filter - Source

Demo workflow that creates an interface to apply filters to an image.

filter example

Build

  • Requires
    • Go >= 1.22.6
    • Makefile
    • A C compiler (mingw, TDM-GCC or g++)
make build-windows
# or
make build-linux

Logs

There is an entry point at ./cmd/log that can be called to print the log file @latest.txt if it exists. make log is a shortcut for calling this.

This can also be used to pipe the output.

make log | grep '! ERROR'
make log | kate -i
make log > latest.txt

Known Issues

  • There is an upstream issue related to mainthread when running on Windows.
    • Sometimes causes the application to crash within the first frame of the master window.
    • Sometimes prevents gui.update() from updating the UI when called from a scheduled function.
    • Recommended to run through WSL when using the gui library on Windows.
  • Some parts of the gui library may not work properly.
    • gui.css_parse() is added but the underlying g.ParseCSSStyleSheet() is currently broken.
    • gui.wg_css_tag() can still be used, but will not have any affect until the upstream issue is fixed.
  • When a lua panic occurs outside of the gui.window_run() loop, it may cause the window to not close until the process is closed.
    • Looking for a solution as calling .Close() on an already closed window causes GLFW to break until the process is restarted, and there is no publically exported field to check if a window is active.
  • It is currently possible to deadlock in certain circumstances.
    • Passing the same collection item twice into a function that schedules on it. e.g. image.draw()
    • Calling a function that schedules on a collection item within a function already running for that collection item. e.g. Calling image.size() within the callback of image.map() for the same images.

imgscal's People

Contributors

artificiallegacy avatar

Stargazers

 avatar  avatar

Watchers

 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.