mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-20 09:49:15 +03:00
LibGfx/JPEG: Take the quality as an argument instead of hardcoding it
This commit is contained in:
parent
05c8ad4e91
commit
a58c7fe322
Notes:
sideshowbarker
2024-07-17 18:13:59 +09:00
Author: https://github.com/LucasChollet Commit: https://github.com/SerenityOS/serenity/commit/a58c7fe322 Pull-request: https://github.com/SerenityOS/serenity/pull/19741 Reviewed-by: https://github.com/awesomekling Reviewed-by: https://github.com/gmta ✅
@ -475,14 +475,12 @@ ErrorOr<void> add_scan_header(Stream& stream)
|
||||
|
||||
}
|
||||
|
||||
ErrorOr<void> JPEGWriter::encode(Stream& stream, Bitmap const& bitmap)
|
||||
ErrorOr<void> JPEGWriter::encode(Stream& stream, Bitmap const& bitmap, Options const& options)
|
||||
{
|
||||
JPEGEncodingContext context { JPEGBigEndianOutputBitStream { stream } };
|
||||
|
||||
// FIXME: Let's take the quality as an option instead of hardcoding it
|
||||
// (there might also be a bug with quantization tables :^)).
|
||||
context.set_luminance_quantization_table(s_default_luminance_quantization_table, 100);
|
||||
context.set_chrominance_quantization_table(s_default_chrominance_quantization_table, 100);
|
||||
context.set_luminance_quantization_table(s_default_luminance_quantization_table, options.quality);
|
||||
context.set_chrominance_quantization_table(s_default_chrominance_quantization_table, options.quality);
|
||||
|
||||
context.dc_luminance_huffman_table = s_default_dc_luminance_huffman_table;
|
||||
context.dc_chrominance_huffman_table = s_default_dc_chrominance_huffman_table;
|
||||
|
@ -11,9 +11,15 @@
|
||||
|
||||
namespace Gfx {
|
||||
|
||||
struct JPEGEncoderOptions {
|
||||
u8 quality { 75 };
|
||||
};
|
||||
|
||||
class JPEGWriter {
|
||||
public:
|
||||
static ErrorOr<void> encode(Stream&, Bitmap const&);
|
||||
using Options = JPEGEncoderOptions;
|
||||
|
||||
static ErrorOr<void> encode(Stream&, Bitmap const&, Options const& = {});
|
||||
|
||||
private:
|
||||
JPEGWriter() = delete;
|
||||
|
Loading…
Reference in New Issue
Block a user