image_remover.hpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include <vector>
  3. #include <filesystem>
  4. #include <SFML/Graphics/Image.hpp>
  5. class ImageRemover final
  6. {
  7. public:
  8. ImageRemover() noexcept;
  9. ImageRemover(std::size_t max_image_width, std::size_t max_image_height) noexcept;
  10. ImageRemover(const ImageRemover&) = delete;
  11. ImageRemover(ImageRemover&&) = delete;
  12. ImageRemover& operator=(const ImageRemover&) = delete;
  13. ImageRemover& operator=(ImageRemover&&) = delete;
  14. void start_removing(const std::vector<std::filesystem::path>& images_to_remove);
  15. inline std::size_t max_image_width() const noexcept
  16. { return max_image_width_; }
  17. inline std::size_t max_image_height() const noexcept
  18. { return max_image_height_; }
  19. inline void set_max_image_width(std::size_t max_image_width) noexcept
  20. { max_image_width_ = max_image_width; }
  21. inline void set_max_image_height(std::size_t max_image_height) noexcept
  22. { max_image_height_ = max_image_height; }
  23. private:
  24. std::size_t max_image_width_;
  25. std::size_t max_image_height_;
  26. bool need_to_remove(const sf::Image& img) noexcept;
  27. };