From 503c4d29ed9f12e80a06dd67c5833fad374811e3 Mon Sep 17 00:00:00 2001 From: Birk Tjelmeland Date: Sat, 9 Feb 2019 20:40:25 +0100 Subject: [PATCH] Add function to write entire image --- src/encoder/mod.rs | 13 +++++++++++++ tests/encode_images.rs | 10 +--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/encoder/mod.rs b/src/encoder/mod.rs index eb28ef8..95d8a37 100644 --- a/src/encoder/mod.rs +++ b/src/encoder/mod.rs @@ -165,6 +165,19 @@ impl TiffEncoder { let encoder = DirectoryEncoder::new(&mut self.writer)?; ImageEncoder::new(encoder, width, height) } + + pub fn write_image(&mut self, width: u32, height: u32, data: &[C::Inner]) -> TiffResult<()> { + let encoder = DirectoryEncoder::new(&mut self.writer)?; + let mut image: ImageEncoder = ImageEncoder::new(encoder, width, height).unwrap(); + + let mut idx = 0; + while image.next_strip_sample_count() > 0 { + let sample_count = image.next_strip_sample_count() as usize; + image.write_strip(&data[idx..idx+sample_count]).unwrap(); + idx += sample_count; + } + image.finish() + } } pub struct DirectoryEncoder<'a, W> { diff --git a/tests/encode_images.rs b/tests/encode_images.rs index c70d909..8a6a098 100644 --- a/tests/encode_images.rs +++ b/tests/encode_images.rs @@ -22,15 +22,7 @@ fn encode_decode() { { let mut tiff = TiffEncoder::new(&mut file).unwrap(); - let mut image = tiff.new_image::(100, 100).unwrap(); - - let mut idx = 0; - while image.next_strip_sample_count() > 0 { - let sample_count = image.next_strip_sample_count() as usize; - image.write_strip(&image_data[idx..idx+sample_count]).unwrap(); - idx += sample_count; - } - image.finish().unwrap(); + tiff.write_image::(100, 100, &image_data).unwrap(); } { file.seek(SeekFrom::Start(0)).unwrap();