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}