Coder Social home page Coder Social logo

happyseafox / sail Goto Github PK

View Code? Open in Web Editor NEW
300.0 300.0 21.0 21.42 MB

The missing small and fast image decoding library for humans (not for machines) ⛵ https://sail.software

License: MIT License

C 77.23% CMake 4.46% C++ 18.32%
apng avif bmp gif gif-animation image-codecs image-decoding image-encoding image-library jpeg jpeg2000 pcx png qoi svg tga tiff webp

sail's People

Contributors

happyseafox avatar lgtm-migrator avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

sail's Issues

[Documentation / FAQ] Could a short subsection be added for ksquirrel versus sail?

Hey there,

I just found this project. I had ksquirrel in my local database for programs; ruby handles this.

I noticed I have not updated ksquirrel in 7 years so I checked whether it was still alive.

That was how I found sail. Now I have not yet tried to compile sail, will do in a bit,
but do you think it may be possible to briefly mention the main differences between
ksquirrel and sail in the FAQ?

https://github.com/smoked-herring/sail/blob/master/FAQ.md

This does not have to be long; just perhaps a sentence or two explaining the main
differences (I assume qt version and kde version?) and perhaps any other larger
difference between the two projects. Thank you for reading and perhaps considering!

Implement more tests

Ideas:

  • check all codecs have the same layout version
  • check all codecs could be loaded
  • decode/encode with reference data
  • all codecs have RGB and RGBA output
  • mem and file I/O sources output the same data

SAIL_ERROR_CODEC_NOT_FOUND when installing via vckpkg on windows

config.h shows that the codecs should be stored in path "...\vcpkg\packages\sail_x64-windows-static\lib\sail\codecs"
However no such folder or file named sail\codecs exists in path "...\vcpkg\packages\sail_x64-windows-static\lib\"

I am just trying to read a jpg or png file, but I keep getting the codec not found error. I have only tried x64-windows-static and x64-windows versions however.

Refactor enumerating codecs in combined mode

Now it's required to open sail-codecs.dll on Windows and the current module on Linux to enumerate codec functions. What about building a list of these functions during build and generating a source file with them? This way we can avoid opening any DLLs. Like that

{
  "JPEG", { jpeg_sail_read_init_v5, ...},
}

vcpkg include directories incorrect

It seems that when installing using vcpkg, the headers expect that the include root is in the sail directory, but vcpkg places the includes under sail. To include something in your own project, you need

#include <sail/sail-c++/sail-c++.h>

but the sail headers includes other sail headers as

#include <sail-c++/...>

Am I missing something here? Was this project updated since it was set up for vcpkg that caused this?

Lua style custom allocators

Tried a search for alloc but that brought up a lot of junk results that didn't match what I was looking for, when lua is first initialised in C it provides the option of setting a custom allocator and user data where the allocator is of the form void * Alloc( void *ud, void *ptr, size_t size, size_t want ) where ud is ignored by the default allocator and only used by a user supplied allocator, this is helpful when multi-threading as I can pass the threads object to the ud parameter which can then communicate the desire for memory to the main thread which handles the allocations instead, avoiding potential collisions when 2 or more threads try to re-allocate memory as they can just all have the same pointer & size reported to them after each re-allocation request is processed, also makes garbage collection easier.

Does SAIL have something similar? If not I'll have to write my own custom image loading functions, I'd prefer to not do that though as I'm trying to keep my graphic studies to just the graphics and not the formats (only recently learned how to use index buffers and am now trying to learn how to use textures).

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.