dicom_toolkit_codec/jpeg/params.rs
1//! JPEG encoding parameters.
2
3use jpeg_encoder::SamplingFactor;
4
5/// JPEG baseline/extended encoding parameters.
6#[derive(Debug, Clone)]
7pub struct JpegParams {
8 /// JPEG quality factor 1–100. 75 is a typical clinical default.
9 pub quality: u8,
10 /// Chroma sub-sampling factor for color images.
11 pub sampling_factor: SamplingFactor,
12 /// Whether to write a JFIF APP0 header (required for some viewers).
13 pub write_jfif: bool,
14}
15
16impl Default for JpegParams {
17 fn default() -> Self {
18 Self {
19 quality: 75,
20 sampling_factor: SamplingFactor::F_2_2,
21 write_jfif: true,
22 }
23 }
24}
25
26impl JpegParams {
27 /// High-quality baseline/extended parameters (quality=100, no sub-sampling).
28 ///
29 /// This improves fidelity, but it is still not classic JPEG Lossless
30 /// Process 14. Use `encode_jpeg_lossless(...)` for true lossless output.
31 pub fn lossless() -> Self {
32 Self {
33 quality: 100,
34 sampling_factor: SamplingFactor::F_1_1,
35 write_jfif: true,
36 }
37 }
38}