From c7ba757bc1271575bdb211da2831f566ee03adac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Arrufat?= <1671644+arrufat@users.noreply.github.com> Date: Mon, 4 Mar 2024 21:30:18 +0900 Subject: [PATCH] add nr and nc methods to jpeg, png and webp loaders (#2920) * add nr and nc methods to jpeg, png and webp loaders * Oops, forgot to declare methods in jpeg_loader.h --- dlib/image_loader/jpeg_loader.cpp | 15 +++++++++++++++ dlib/image_loader/jpeg_loader.h | 2 ++ dlib/image_loader/jpeg_loader_abstract.h | 16 ++++++++++++++++ dlib/image_loader/png_loader.cpp | 4 +++- dlib/image_loader/png_loader.h | 4 +++- dlib/image_loader/png_loader_abstract.h | 18 +++++++++++++++++- dlib/image_loader/webp_loader.cpp | 5 +++++ dlib/image_loader/webp_loader.h | 3 +++ dlib/image_loader/webp_loader_abstract.h | 16 ++++++++++++++++ 9 files changed, 80 insertions(+), 3 deletions(-) diff --git a/dlib/image_loader/jpeg_loader.cpp b/dlib/image_loader/jpeg_loader.cpp index c0ec33ccb..b28bdf9ea 100644 --- a/dlib/image_loader/jpeg_loader.cpp +++ b/dlib/image_loader/jpeg_loader.cpp @@ -75,6 +75,21 @@ namespace dlib return (output_components_ == 4); } + +// ---------------------------------------------------------------------------------------- + + long jpeg_loader::nr() const + { + return static_cast(height_); + } + +// ---------------------------------------------------------------------------------------- + + long jpeg_loader::nc() const + { + return static_cast(width_); + } + // ---------------------------------------------------------------------------------------- struct jpeg_loader_error_mgr diff --git a/dlib/image_loader/jpeg_loader.h b/dlib/image_loader/jpeg_loader.h index 91a1958fa..3bf99c195 100644 --- a/dlib/image_loader/jpeg_loader.h +++ b/dlib/image_loader/jpeg_loader.h @@ -26,6 +26,8 @@ namespace dlib bool is_gray() const; bool is_rgb() const; bool is_rgba() const; + long nr() const; + long nc() const; template void get_image( T& t_) const diff --git a/dlib/image_loader/jpeg_loader_abstract.h b/dlib/image_loader/jpeg_loader_abstract.h index 2ecb5fad5..232765245 100644 --- a/dlib/image_loader/jpeg_loader_abstract.h +++ b/dlib/image_loader/jpeg_loader_abstract.h @@ -105,6 +105,22 @@ namespace dlib - returns false !*/ + long nr ( + ) const; + /*! + ensures + - returns the number of rows (height) of the image contained by this + object. + !*/ + + long nc ( + ) const; + /*! + ensures + - returns the number of colums (width) of the image contained by this + object. + !*/ + template< typename image_type > diff --git a/dlib/image_loader/png_loader.cpp b/dlib/image_loader/png_loader.cpp index 0b5e18d38..2129622dc 100644 --- a/dlib/image_loader/png_loader.cpp +++ b/dlib/image_loader/png_loader.cpp @@ -156,6 +156,8 @@ namespace dlib bool png_loader::is_rgb() const { return color_type == PNG_COLOR_TYPE_RGB; } bool png_loader::is_rgba() const { return color_type == PNG_COLOR_TYPE_RGB_ALPHA; } unsigned int png_loader::bit_depth () const {return bit_depth_;} + long png_loader::nr() const { return height; } + long png_loader::nc() const { return width; } // ---------------------------------------------------------------------------------------- @@ -163,4 +165,4 @@ namespace dlib #endif // DLIB_PNG_SUPPORT -#endif // DLIB_PNG_LOADER_CPp_ \ No newline at end of file +#endif // DLIB_PNG_LOADER_CPp_ diff --git a/dlib/image_loader/png_loader.h b/dlib/image_loader/png_loader.h index a0a4c2620..421a29cbe 100644 --- a/dlib/image_loader/png_loader.h +++ b/dlib/image_loader/png_loader.h @@ -36,6 +36,8 @@ namespace dlib bool is_rgb() const; bool is_rgba() const; unsigned int bit_depth () const; + long nr() const; + long nc() const; template void get_image( image_type& img) const @@ -193,4 +195,4 @@ namespace dlib #include "png_loader.cpp" #endif -#endif // DLIB_PNG_IMPORT \ No newline at end of file +#endif // DLIB_PNG_IMPORT diff --git a/dlib/image_loader/png_loader_abstract.h b/dlib/image_loader/png_loader_abstract.h index 908c60a56..0726eb1a0 100644 --- a/dlib/image_loader/png_loader_abstract.h +++ b/dlib/image_loader/png_loader_abstract.h @@ -145,6 +145,22 @@ namespace dlib object. The possible values are 8 or 16. !*/ + long nr ( + ) const; + /*! + ensures + - returns the number of rows (height) of the image contained by this + object. + !*/ + + long nc ( + ) const; + /*! + ensures + - returns the number of colums (width) of the image contained by this + object. + !*/ + template< typename image_type > @@ -220,4 +236,4 @@ namespace dlib } -#endif // DLIB_PNG_IMPORT_ABSTRACT \ No newline at end of file +#endif // DLIB_PNG_IMPORT_ABSTRACT diff --git a/dlib/image_loader/webp_loader.cpp b/dlib/image_loader/webp_loader.cpp index 6d1abb271..7b3f5ad4c 100644 --- a/dlib/image_loader/webp_loader.cpp +++ b/dlib/image_loader/webp_loader.cpp @@ -62,6 +62,11 @@ namespace dlib get_info(); } +// ---------------------------------------------------------------------------------------- + + long webp_loader::nr() const { return height_; } + long webp_loader::nc() const { return width_; } + // ---------------------------------------------------------------------------------------- void webp_loader::get_info() diff --git a/dlib/image_loader/webp_loader.h b/dlib/image_loader/webp_loader.h index 59561a676..3ec14e296 100644 --- a/dlib/image_loader/webp_loader.h +++ b/dlib/image_loader/webp_loader.h @@ -23,6 +23,9 @@ namespace dlib webp_loader(const dlib::file& f); webp_loader(const unsigned char* imgbuffer, size_t buffersize); + long nr() const; + long nc() const; + template void get_image(image_type& image) const { diff --git a/dlib/image_loader/webp_loader_abstract.h b/dlib/image_loader/webp_loader_abstract.h index ccca43259..5dd4e00c5 100644 --- a/dlib/image_loader/webp_loader_abstract.h +++ b/dlib/image_loader/webp_loader_abstract.h @@ -82,6 +82,22 @@ namespace dlib - all resources associated with *this has been released !*/ + long nr ( + ) const; + /*! + ensures + - returns the number of rows (height) of the image contained by this + object. + !*/ + + long nc ( + ) const; + /*! + ensures + - returns the number of colums (width) of the image contained by this + object. + !*/ + template< typename image_type >