Skip to main content

dicom_toolkit_codec/jpeg/
params.rs

1//! JPEG encoding parameters.
2
3use jpeg_encoder::SamplingFactor;
4
5/// JPEG codec encoding parameters, mirroring DCMTK's `DJ_RPLossless`/`DJ_RPLossy`.
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    /// Lossless-quality parameters (quality=100, no sub-sampling).
28    pub fn lossless() -> Self {
29        Self {
30            quality: 100,
31            sampling_factor: SamplingFactor::F_1_1,
32            write_jfif: true,
33        }
34    }
35}