11 #include "pictures/PictureScalingAlgorithm.h" 12 #include "utils/Job.h" 22 #include <libavutil/pixfmt.h> 30 static bool GetThumbnailFromSurface(
const unsigned char* buffer,
int width,
int height,
int stride,
const std::string &thumbFile, uint8_t* &result,
size_t& result_size);
31 static bool CreateThumbnailFromSurface(
const unsigned char* buffer,
int width,
int height,
int stride,
const std::string &thumbFile);
37 static bool CreateTiledThumb(
const std::vector<std::string> &files,
const std::string &thumb);
39 static std::unique_ptr<CTexture>
CreateTiledThumb(
const std::vector<std::string>& files);
41 static bool ResizeTexture(
42 const std::string& image,
45 uint32_t& dest_height,
48 CPictureScalingAlgorithm::Algorithm scalingAlgorithm = CPictureScalingAlgorithm::NoAlgorithm);
49 static bool ResizeTexture(
const std::string &image, uint8_t *pixels, uint32_t width, uint32_t height, uint32_t pitch,
50 uint32_t &dest_width, uint32_t &dest_height, uint8_t* &result,
size_t& result_size,
51 CPictureScalingAlgorithm::Algorithm scalingAlgorithm = CPictureScalingAlgorithm::NoAlgorithm);
63 uint32_t& dest_height,
64 const std::string& dest,
65 CPictureScalingAlgorithm::Algorithm scalingAlgorithm = CPictureScalingAlgorithm::NoAlgorithm);
66 static bool CacheTexture(uint8_t *pixels, uint32_t width, uint32_t height, uint32_t pitch,
int orientation,
67 uint32_t &dest_width, uint32_t &dest_height,
const std::string &dest,
68 CPictureScalingAlgorithm::Algorithm scalingAlgorithm = CPictureScalingAlgorithm::NoAlgorithm);
70 static void GetScale(
unsigned int width,
unsigned int height,
unsigned int &out_width,
unsigned int &out_height);
71 static bool ScaleImage(
73 unsigned int in_width,
74 unsigned int in_height,
75 unsigned int in_pitch,
76 AVPixelFormat in_format,
78 unsigned int out_width,
79 unsigned int out_height,
80 unsigned int out_pitch,
81 AVPixelFormat out_format,
82 CPictureScalingAlgorithm::Algorithm scalingAlgorithm = CPictureScalingAlgorithm::NoAlgorithm);
85 static bool OrientateImage(uint32_t*& pixels,
89 unsigned int& stridePixels);
91 static bool FlipHorizontal(uint32_t*& pixels,
92 const unsigned int& width,
93 const unsigned int& height,
94 const unsigned int& stridePixels);
95 static bool FlipVertical(uint32_t*& pixels,
96 const unsigned int& width,
97 const unsigned int& height,
98 const unsigned int& stridePixels);
99 static bool Rotate90CCW(uint32_t*& pixels,
101 unsigned int& height,
102 unsigned int& stridePixels);
103 static bool Rotate270CCW(uint32_t*& pixels,
105 unsigned int& height,
106 unsigned int& stridePixels);
107 static bool Rotate180CCW(uint32_t*& pixels,
108 const unsigned int& width,
109 const unsigned int& height,
110 const unsigned int& stridePixels);
111 static bool Transpose(uint32_t*& pixels,
113 unsigned int& height,
114 unsigned int& width_aligned);
115 static bool TransposeOffAxis(uint32_t*& pixels,
117 unsigned int& height,
118 unsigned int& stridePixels);
126 CThumbnailWriter(
unsigned char* buffer,
int width,
int height,
int stride,
const std::string& thumbFile);
128 bool DoWork()
override;
131 unsigned char* m_buffer;
135 std::string m_thumbFile;
static bool CacheTexture(CTexture *texture, uint32_t &dest_width, uint32_t &dest_height, const std::string &dest, CPictureScalingAlgorithm::Algorithm scalingAlgorithm=CPictureScalingAlgorithm::NoAlgorithm)
Cache a texture, resizing, rotating and flipping as needed, and saving as a JPG or PNG...
Definition: Picture.cpp:201
Base class for jobs that are executed asynchronously.
Definition: Job.h:109
Base texture class, subclasses of which depend on the render spec (DX, GL etc.)
Definition: Texture.h:34
Definition: Picture.h:122
static bool CreateTiledThumb(const std::vector< std::string > &files, const std::string &thumb)
Create a tiled thumb of the given files.
Definition: Picture.cpp:349