From 254de974afe23e3eb9f7950306182870a4439746 Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Thu, 6 Mar 2025 12:39:04 +0100 Subject: [PATCH] Upgrade rawkit --- .../rawkit/rawkit-proc-macros/src/build_camera_data.rs | 2 +- libraries/rawkit/rawkit-proc-macros/src/tag_derive.rs | 4 ++-- libraries/rawkit/src/decoder/arw1.rs | 10 +++------- libraries/rawkit/src/postprocessing/convert_to_rgb.rs | 4 ++-- .../rawkit/src/postprocessing/gamma_correction.rs | 4 ++-- .../rawkit/src/postprocessing/record_histogram.rs | 2 +- libraries/rawkit/src/preprocessing/scale_to_16bit.rs | 2 +- .../rawkit/src/preprocessing/scale_white_balance.rs | 2 +- libraries/rawkit/src/preprocessing/subtract_black.rs | 2 +- libraries/rawkit/src/tiff/types.rs | 6 +----- libraries/rawkit/tests/tests.rs | 4 ++-- 11 files changed, 17 insertions(+), 25 deletions(-) diff --git a/libraries/rawkit/rawkit-proc-macros/src/build_camera_data.rs b/libraries/rawkit/rawkit-proc-macros/src/build_camera_data.rs index ccbfdf45bb..406fbb88df 100644 --- a/libraries/rawkit/rawkit-proc-macros/src/build_camera_data.rs +++ b/libraries/rawkit/rawkit-proc-macros/src/build_camera_data.rs @@ -1,5 +1,5 @@ use proc_macro::TokenStream; -use quote::{quote, ToTokens}; +use quote::{ToTokens, quote}; use toml::{Table, Value}; use std::fs; diff --git a/libraries/rawkit/rawkit-proc-macros/src/tag_derive.rs b/libraries/rawkit/rawkit-proc-macros/src/tag_derive.rs index 00c818fdbf..ddfed688bf 100644 --- a/libraries/rawkit/rawkit-proc-macros/src/tag_derive.rs +++ b/libraries/rawkit/rawkit-proc-macros/src/tag_derive.rs @@ -24,7 +24,7 @@ pub fn tag_derive(input: TokenStream) -> TokenStream { let new_name = format_ident!("_{}", name); - let gen = quote! { + let r#gen = quote! { struct #new_name { #( #struct_idents: <#struct_types as Tag>::Output ),* } @@ -39,5 +39,5 @@ pub fn tag_derive(input: TokenStream) -> TokenStream { } }; - gen.into() + r#gen.into() } diff --git a/libraries/rawkit/src/decoder/arw1.rs b/libraries/rawkit/src/decoder/arw1.rs index 9023796a4b..4f47f1bc1f 100644 --- a/libraries/rawkit/src/decoder/arw1.rs +++ b/libraries/rawkit/src/decoder/arw1.rs @@ -1,9 +1,9 @@ +use crate::tiff::Ifd; use crate::tiff::file::TiffRead; use crate::tiff::tags::SonyDataOffset; -use crate::tiff::Ifd; use crate::{RawImage, SubtractBlack, Transform}; -use bitstream_io::{BitRead, BitReader, Endianness, BE}; +use bitstream_io::{BE, BitRead, BitReader, Endianness}; use std::io::{Read, Seek}; pub fn decode_a100(ifd: Ifd, file: &mut TiffRead) -> RawImage { @@ -63,11 +63,7 @@ fn ljpeg_diff(huff: &[u16], file: &mut BitReader< let diff = read_n_bits_from_file(length, file) as i32; - if length == 0 || (diff & (1 << (length - 1))) == 0 { - diff - (1 << length) - 1 - } else { - diff - } + if length == 0 || (diff & (1 << (length - 1))) == 0 { diff - (1 << length) - 1 } else { diff } } fn sony_arw_load_raw(width: usize, height: usize, file: &mut BitReader) -> Option> { diff --git a/libraries/rawkit/src/postprocessing/convert_to_rgb.rs b/libraries/rawkit/src/postprocessing/convert_to_rgb.rs index 75918f8b2d..50f95f0517 100644 --- a/libraries/rawkit/src/postprocessing/convert_to_rgb.rs +++ b/libraries/rawkit/src/postprocessing/convert_to_rgb.rs @@ -1,7 +1,7 @@ -use crate::{Pixel, RawImage, CHANNELS_IN_RGB}; +use crate::{CHANNELS_IN_RGB, Pixel, RawImage}; impl RawImage { - pub fn convert_to_rgb_fn(&self) -> impl Fn(Pixel) -> [u16; CHANNELS_IN_RGB] { + pub fn convert_to_rgb_fn(&self) -> impl Fn(Pixel) -> [u16; CHANNELS_IN_RGB] + use<> { let Some(camera_to_rgb) = self.camera_to_rgb else { todo!() }; move |pixel: Pixel| { diff --git a/libraries/rawkit/src/postprocessing/gamma_correction.rs b/libraries/rawkit/src/postprocessing/gamma_correction.rs index 99110602c8..86f5d67252 100644 --- a/libraries/rawkit/src/postprocessing/gamma_correction.rs +++ b/libraries/rawkit/src/postprocessing/gamma_correction.rs @@ -1,8 +1,8 @@ -use crate::{Histogram, Image, Pixel, CHANNELS_IN_RGB}; +use crate::{CHANNELS_IN_RGB, Histogram, Image, Pixel}; use std::f64::consts::E; impl Image { - pub fn gamma_correction_fn(&self, histogram: &Histogram) -> impl Fn(Pixel) -> [u16; CHANNELS_IN_RGB] { + pub fn gamma_correction_fn(&self, histogram: &Histogram) -> impl Fn(Pixel) -> [u16; CHANNELS_IN_RGB] + use<> { let percentage = self.width * self.height; let mut white = 0; diff --git a/libraries/rawkit/src/postprocessing/record_histogram.rs b/libraries/rawkit/src/postprocessing/record_histogram.rs index d484b7bd5b..3b22a3ffbe 100644 --- a/libraries/rawkit/src/postprocessing/record_histogram.rs +++ b/libraries/rawkit/src/postprocessing/record_histogram.rs @@ -1,4 +1,4 @@ -use crate::{Histogram, Pixel, PixelTransform, RawImage, CHANNELS_IN_RGB}; +use crate::{CHANNELS_IN_RGB, Histogram, Pixel, PixelTransform, RawImage}; impl RawImage { pub fn record_histogram_fn(&self) -> RecordHistogram { diff --git a/libraries/rawkit/src/preprocessing/scale_to_16bit.rs b/libraries/rawkit/src/preprocessing/scale_to_16bit.rs index 7f7ad87cdf..bf7fce70bb 100644 --- a/libraries/rawkit/src/preprocessing/scale_to_16bit.rs +++ b/libraries/rawkit/src/preprocessing/scale_to_16bit.rs @@ -1,7 +1,7 @@ use crate::{RawImage, RawPixel, SubtractBlack}; impl RawImage { - pub fn scale_to_16bit_fn(&self) -> impl Fn(RawPixel) -> u16 { + pub fn scale_to_16bit_fn(&self) -> impl Fn(RawPixel) -> u16 + use<> { let black_level = match self.black { SubtractBlack::CfaGrid(x) => x, _ => unreachable!(), diff --git a/libraries/rawkit/src/preprocessing/scale_white_balance.rs b/libraries/rawkit/src/preprocessing/scale_white_balance.rs index f81660a7ce..34ce6a1146 100644 --- a/libraries/rawkit/src/preprocessing/scale_white_balance.rs +++ b/libraries/rawkit/src/preprocessing/scale_white_balance.rs @@ -1,7 +1,7 @@ use crate::{RawImage, RawPixel}; impl RawImage { - pub fn scale_white_balance_fn(&self) -> impl Fn(RawPixel) -> u16 { + pub fn scale_white_balance_fn(&self) -> impl Fn(RawPixel) -> u16 + use<> { let Some(mut white_balance) = self.white_balance else { todo!() }; if white_balance[1] == 0. { diff --git a/libraries/rawkit/src/preprocessing/subtract_black.rs b/libraries/rawkit/src/preprocessing/subtract_black.rs index b4e368eb3b..8a28c56767 100644 --- a/libraries/rawkit/src/preprocessing/subtract_black.rs +++ b/libraries/rawkit/src/preprocessing/subtract_black.rs @@ -2,7 +2,7 @@ use crate::RawPixel; use crate::{RawImage, SubtractBlack}; impl RawImage { - pub fn subtract_black_fn(&self) -> impl Fn(RawPixel) -> u16 { + pub fn subtract_black_fn(&self) -> impl Fn(RawPixel) -> u16 + use<> { match self.black { SubtractBlack::CfaGrid(black_levels) => move |pixel: RawPixel| pixel.value.saturating_sub(black_levels[2 * (pixel.row % 2) + (pixel.column % 2)]), _ => todo!(), diff --git a/libraries/rawkit/src/tiff/types.rs b/libraries/rawkit/src/tiff/types.rs index 4533f6b385..3da09e9b46 100644 --- a/libraries/rawkit/src/tiff/types.rs +++ b/libraries/rawkit/src/tiff/types.rs @@ -41,11 +41,7 @@ impl PrimitiveType for TypeAscii { fn read_primitive(_: IfdTagType, file: &mut TiffRead) -> Result { let value = file.read_ascii()?; - if value.is_ascii() { - Ok(value) - } else { - Err(TiffError::InvalidValue) - } + if value.is_ascii() { Ok(value) } else { Err(TiffError::InvalidValue) } } } diff --git a/libraries/rawkit/tests/tests.rs b/libraries/rawkit/tests/tests.rs index dfb0c0984c..2f051e88e0 100644 --- a/libraries/rawkit/tests/tests.rs +++ b/libraries/rawkit/tests/tests.rs @@ -9,7 +9,7 @@ use libraw::Processor; use rayon::prelude::*; use std::collections::HashMap; use std::fmt::Write; -use std::fs::{create_dir, metadata, read_dir, File}; +use std::fs::{File, create_dir, metadata, read_dir}; use std::io::{BufWriter, Cursor, Read}; use std::path::{Path, PathBuf}; use std::sync::atomic::{AtomicUsize, Ordering}; @@ -338,10 +338,10 @@ fn extract_data_from_dng_images() { } fn extract_data_from_dng_image(path: &Path) { + use rawkit::tiff::Ifd; use rawkit::tiff::file::TiffRead; use rawkit::tiff::tags::{ColorMatrix2, Make, Model}; use rawkit::tiff::values::ToFloat; - use rawkit::tiff::Ifd; use std::io::{BufReader, Write}; let reader = BufReader::new(File::open(path).unwrap());