This should've been added in #2925.
The only doubt I have around the function name:
- `load_rgb_alpha_image`: following the `rgb_alpha_pixel` in dlib
- `load_rgba_image`: shorter and maybe nicer?
* WIP: preparation for JPEG XL support
* jxl: add loading support
* update jxl abstract
* add support for saving jxl (lossless not working)
* everything works except setting lossless explicitly
* remove unused header
* fix wrong quality logic
* remove debugging statements
* fix lossless encoding
* improve support for grayscale images
* use JXL instead of JPEGXL everywhere
* oops do not make libjxl a requirement
* update years
* silence some warnings
* simplify loader fast path logic
* allow python to save jxl and webp
* update error message with supported formats
* Allow setting image quality in Python
The setting is ignored where it does not make sense.
* round quality in JPEG saver
* improve error message in CMake
* add jxl support to imglab
* add Davis's suggestion
Co-authored-by: Davis E. King <davis685@gmail.com>
* Apply suggestions from code review
Co-authored-by: Davis E. King <davis685@gmail.com>
* make sure grayscale is 8 bit
* update abstract: JPEG XL can store grayscale images
* add more methods to query basic info from JXL
* documentation formatting
* Apply Davis' suggestions
---------
Co-authored-by: Davis E. King <davis685@gmail.com>
* Remove convert_to_utf32 from imglab by updating widgets methods
* Use convert_to_utf32 in draw_string for images
* Add an overload of draw_string for string literals
* Improve UTF-8 support for draw_string
* Add ugly hack to make it work
* Unify all convert_utf8_to_utf32 implementations
* Rename convert_utf8_to_utf32 to convert_to_utf32
* Remove code related to GCC 4, since it's no longer supported
* Format is_combining_char according to dlib codestyle and remove pragmas
* Rename convert_utf8_to_utf32 to convert_to_utf32
* Complete the convert_to_utf32 function
* Fix build on untested OS
* Try to fix compilation in Windows
* Update docs and replace typedef with using
* Add back especialized conversions to UTF-32
* Add requires clause to convert_to_utf32
* Update dlib/unicode/unicode_abstract.h
---------
Co-authored-by: Davis E. King <davis685@gmail.com>
* - moved for_each_in_tuple() to algs.h. Seems like a better place
- took the opportunity to deprecated the old type traits and make them aliases to things in the standard library
* - made bools() constexpr
* - removed ugly template recursion version of for_each_in_tuple(). Recursion is bad and is one of the reasons why buid times are so long.
- Use generic lambdas. Much better.
* - missing include
* - just make old deprecates stuff aliases to standard library things
- use switch_() for compile time branching. It's awesome. It means less code and less templates.
* - fixed make_compile_time_integer_range. Didn't realize it counted like Matlab. Very weird
* - nice example usage of switch_(). it will be trivially updated to if constexpr() in a couple years when dlib requires C++17
* - deduce return type
- use generic lambdas
* - for some reason these have to specify the return type. I don't understand. Will fix in a bit.
* - yet another template recursion removed. Better compile times in theory. Every little helps
* whoops
* use decay_t
* - type traits go in type_traits.h
- things found in <utility> go in utility.h
- algs.h doesn't contain any type traits. It just includes type_traits.h
* only need type_traits.h header
* use fold expressions if possible
* use is_any from type_traits.h
* - moved is_convertible to type_traits.h. Also make it an alias for std::is_convertible
* moved is_convertible
* use type traits in standard library
* - use standard library
* use standard library
* MSVC bug workaround
* missing dlib namespace
* fix typo
* - reverting back compile_time_integer_list and make_compile_time_integer_range
* - making sure nothing uses compile_time_integer_list or make_compile_time_integer_range
* - added pop_front for index_sequence
- making sure nothing uses compile_time_integer_list or make_compile_time_integer_range
- use auto
* - use integer_sequence
* - added docs for get_type_id(tag)
* - use __type_pack_element if available
* - hmm, reverting, some pre-processors break here. Don't know why.
Co-authored-by: pf <pf@me>
* Update Pybind11 to v2.10.0
* Update numpy_image to work with latest Pybind11
* I don't know why I have to do this now...
* Try to make macOS use Python3... Really?
* Try to make macOS use Python3... Again
* Try to make macOS use Python3... Once more
* Install dependencies with pip3
* imglab: add support for using chinese whispers for more automatic clustering
* widgets: refactor out zooming from wheel handling
* tools/imglab/src/metadata_editor.cpp
imglab: add keyboard shortcuts for zooming
* Add python api that generates desciptor(s) from the aligned image(s)
* Remove asserts from face_recognition.py example/tutorial
* In batch_compute_face_descriptors_from_aligned_images, use for-in loop to simplify the code
Improvde the document on binding methods and the error message if the aligned image is not of size 150x150