Encoding of extra samples, roundtrip test
This commit is contained in:
1 parent
8517bb81db
commit
2eef9ac088
5 files changed
+59
-11
No files matched your search
+25
-7
@@ -686,19 +686,37 @@ fn test_fax4_white_is_min() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn extra_bits_image() {
|
||||
fn write_extra_bits_image() {
|
||||
use tiff::{encoder, tags::ExtraSamples};
|
||||
|
||||
let path = PathBuf::from(TEST_IMAGE_DIR).join("extra_bits_gray_4b.tiff");
|
||||
let path = PathBuf::from(TEST_IMAGE_DIR).join("extra_bits_rgb_8b.tiff");
|
||||
let img_file = File::create(path).expect("Cannot find test image!");
|
||||
|
||||
let mut encoder = encoder::TiffEncoder::new(img_file).expect("Cannot create encoder");
|
||||
let mut img = encoder
|
||||
.new_image::<encoder::colortype::Gray8>(8, 8)
|
||||
.unwrap();
|
||||
let mut img = encoder.new_image::<encoder::colortype::RGB8>(8, 8).unwrap();
|
||||
|
||||
img.extra_samples(&[ExtraSamples::Unspecified]).unwrap();
|
||||
|
||||
let data: [u8; 128] = core::array::from_fn(|i| i as u8 % 2);
|
||||
img.write_data(&data).expect("correct amount of data to write");
|
||||
// all pixels are supposed to be 0, the extra is 1
|
||||
let data: [u8; 256] = core::array::from_fn(|i| (i as u8 % 4).saturating_sub(2));
|
||||
|
||||
img.write_data(&data)
|
||||
.expect("correct amount of data to write");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn extra_bits_gray() {
|
||||
test_image_sum_u8(
|
||||
"extra_bits_gray_8b.tiff",
|
||||
ColorType::Multiband {
|
||||
bit_depth: 8,
|
||||
num_samples: 2,
|
||||
},
|
||||
64,
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn extra_bits_rgb() {
|
||||
test_image_sum_u8("extra_bits_rgb_8b.tiff", ColorType::RGB(8), 0);
|
||||
}
|
||||
@@ -57,7 +57,7 @@ fn encode_decode() {
|
||||
),
|
||||
(Tag::Compression, ifd::Value::Short(1)),
|
||||
(Tag::PhotometricInterpretation, ifd::Value::Short(2)),
|
||||
(Tag::StripOffsets, ifd::Value::Unsigned(47)),
|
||||
(Tag::StripOffsets, ifd::Value::Unsigned(35)),
|
||||
(Tag::SamplesPerPixel, ifd::Value::Short(3)),
|
||||
(Tag::RowsPerStrip, ifd::Value::Unsigned(3334)),
|
||||
(Tag::StripByteCounts, ifd::Value::Unsigned(30000)),
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in new issue
Block a user