35 tjDestroy(_compressor);
39 const std::string& format,
40 const uint8_t quality)
46 const std::string& format,
47 const uint8_t quality)
49 if (frameBuffers.size() == 1)
50 return createImage(*frameBuffers[0], format, quality);
52 std::vector<freeimage::ImagePtr> images;
53 for (
auto frameBuffer : frameBuffers)
54 images.push_back(frameBuffer->getImage());
59 const uint8_t quality)
69 int32_t pixelFormat = TJPF_RGBX;
73 pixelFormat = TJPF_BGRX;
77 pixelFormat = TJPF_RGBX;
80 const auto& frameSize = frameBuffer.
getSize();
82 image.
data = _encodeJpeg(frameSize.x, frameSize.y, colorBuffer, pixelFormat, quality, image.
size);
88 const uint8_t* rawData,
const int32_t pixelFormat,
89 const uint8_t quality,
unsigned long& dataSize)
91 uint8_t* tjSrcBuffer =
const_cast<uint8_t*
>(rawData);
92 const int32_t color_components = 4;
93 const int32_t tjPitch = width * color_components;
94 const int32_t tjPixelFormat = pixelFormat;
96 uint8_t* tjJpegBuf = 0;
97 const int32_t tjJpegSubsamp = TJSAMP_444;
98 const int32_t tjFlags = TJXOP_ROT180;
100 const int32_t success = tjCompress2(_compressor, tjSrcBuffer, width, tjPitch, height, tjPixelFormat, &tjJpegBuf,
101 &dataSize, tjJpegSubsamp, quality, tjFlags);
105 CORE_ERROR(
"libjpeg-turbo image conversion failure");
This class represents a frame buffer for an engine specific code. It provides an API for utilizing an...
PLATFORM_API FrameBufferFormat getFrameBufferFormat() const
Get the Frame Buffer Format object.
virtual PLATFORM_API const uint8_t * getColorBuffer() const =0
Get the Color Buffer object.
virtual PLATFORM_API void map()=0
Map the buffer for reading with get*Buffer().
PLATFORM_API freeimage::ImagePtr getImage()
Get the Image object.
virtual PLATFORM_API Vector2ui getSize() const
Get the Size object.
virtual PLATFORM_API void unmap()=0
Unmap the buffer for reading with get*Buffer().
ImageJPEG createJPEG(FrameBuffer &frameBuffer, uint8_t quality)
ImageBase64 createImage(FrameBuffer &frameBuffer, const std::string &format, uint8_t quality)
std::string getBase64Image(ImagePtr image, const std::string &format, const int quality)
ImagePtr mergeImages(const std::vector< ImagePtr > &images)
std::unique_ptr< uint8_t, tjDeleter > JpegData