From 001e3dd7358836d6d87dbcced6bd198965098b11 Mon Sep 17 00:00:00 2001 From: Richard Siomporas Date: Sun, 20 Aug 2023 12:10:18 -0400 Subject: [PATCH 1/7] Added working example of group 4 compression to tiff crate --- examples/README.md | 9 +++ examples/group_4/.gitignore | 2 + examples/group_4/Cargo.toml | 12 ++++ examples/group_4/data/patent-drawing.png | Bin 0 -> 81508 bytes examples/group_4/data/patent-drawing.tif | Bin 0 -> 197310 bytes examples/group_4/src/main.rs | 86 +++++++++++++++++++++++ 6 files changed, 109 insertions(+) create mode 100644 examples/README.md create mode 100644 examples/group_4/.gitignore create mode 100644 examples/group_4/Cargo.toml create mode 100644 examples/group_4/data/patent-drawing.png create mode 100644 examples/group_4/data/patent-drawing.tif create mode 100644 examples/group_4/src/main.rs diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 00000000..d7ba116f --- /dev/null +++ b/examples/README.md @@ -0,0 +1,9 @@ +# Examples + +Below are some examples of integrating image-tiff with other libraries for additional functionality. + +## [CCITT Group 4 / T.6 "fax machine" compression support[(group_4)] + +This example uses the [fax crate](https://github.com/pdf-rs/fax) to provide CCITT Group 4 / T.6 decompression capabilities to +the image-tiff crate in a simple demo that accepts an arbitrary image file as the sole command line argument and will perform +group 4 decompression on the input file if it is a big endian tiff file. Sample files are included under the data folder. \ No newline at end of file diff --git a/examples/group_4/.gitignore b/examples/group_4/.gitignore new file mode 100644 index 00000000..fac84aec --- /dev/null +++ b/examples/group_4/.gitignore @@ -0,0 +1,2 @@ +/target +out.png diff --git a/examples/group_4/Cargo.toml b/examples/group_4/Cargo.toml new file mode 100644 index 00000000..68c91e3d --- /dev/null +++ b/examples/group_4/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "tiff-issue" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] + +image = "0.24.7" +fax = "0.2.0" +tiff = "0.9.0" diff --git a/examples/group_4/data/patent-drawing.png b/examples/group_4/data/patent-drawing.png new file mode 100644 index 0000000000000000000000000000000000000000..189088f7d5a94df3fa0c980f863ac52e505c685f GIT binary patch literal 81508 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 Result, ImageError> { + let mut image_data = BufWriter::new(Cursor::new(Vec::new())); + dyn_image.write_to(&mut image_data, image::ImageOutputFormat::Png).unwrap(); + return Ok(image_data.get_ref().get_ref().to_owned()); +} + +fn image_preprocess_fax(bytes:Vec) -> Result> { + use tiff::decoder::Decoder; + use tiff::tags::Tag; + let mut decoder = Decoder::new(Cursor::new(bytes.as_slice())).unwrap(); + let width = decoder.get_tag_u32(Tag::ImageWidth).unwrap(); + let height = decoder.get_tag_u32(Tag::ImageLength).unwrap(); + assert_eq!(decoder.get_tag_u32(Tag::Compression).unwrap(), 4); + assert_eq!(decoder.get_tag_u32(Tag::BitsPerSample).unwrap(), 1); + + let strip_offsets = decoder.get_tag_u32_vec(Tag::StripOffsets).unwrap(); + let strip_lengths = decoder.get_tag_u32_vec(Tag::StripByteCounts).unwrap(); + + let mut image = GrayImage::new(width, height); + + let mut rows = image.rows_mut(); + let mut cols_read = 0; + for (&off, &len) in strip_offsets.iter().zip(strip_lengths.iter()) { + decoder.goto_offset(off).unwrap(); + let bytes = std::iter::from_fn(|| decoder.read_byte().ok()).take(len as usize); + + decoder::decode_g4(bytes, width as u16, None, |transitions| { + let row = rows.next().unwrap(); + for (c, px) in pels(transitions, width as u16).zip(row) { + let byte = match c { + Color::Black => 0, + Color::White => 255 + }; + px.0[0] = byte; + } + + cols_read += 1; + }); + } + + Ok(image) +} + +pub fn read_bytes_to_png_bytes(bytes:Vec,) -> Result, ImageError>{ + if bytes.len() > 3 && bytes[0] == 73 && bytes[1] == 73 // big endian, fine for POC + && bytes[2] == 42{ + let image = image_preprocess_fax(bytes).unwrap(); + return resize_dyn_img_to_png_bytes(image.into()); + } + + let reader = ImageReader::new(Cursor::new(bytes)).with_guessed_format()?; + + match reader.decode(){ + Ok(img) => { + return resize_dyn_img_to_png_bytes(img); + } + Err(e) => { + eprint!("Error decoding image: {}", e); + return Err(e); + } + }; +} + +pub fn read_image_to_png_bytes(path: &String) -> Result, ImageError>{ + let bytes = fs::read(path).unwrap(); + return read_bytes_to_png_bytes(bytes); +} + +fn main() { + let args: Vec = env::args().collect(); + if args.len() > 1{ + let path = &args[1]; + let image_bytes = read_image_to_png_bytes(path).unwrap(); + std::fs::write("out.png", &image_bytes).unwrap(); + println!("Image converted to out.png, {} bytes in final PNG representation", image_bytes.len()); + } + else{ + println!("Usage - this_executable "); + } +} From 9faf73eb368437f90d89a29e52d1a7ece6fe80a0 Mon Sep 17 00:00:00 2001 From: Richard Siomporas Date: Sun, 20 Aug 2023 12:12:06 -0400 Subject: [PATCH 2/7] Updated README with maybe working subfolder link? --- examples/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/README.md b/examples/README.md index d7ba116f..77ce9ad7 100644 --- a/examples/README.md +++ b/examples/README.md @@ -2,8 +2,8 @@ Below are some examples of integrating image-tiff with other libraries for additional functionality. -## [CCITT Group 4 / T.6 "fax machine" compression support[(group_4)] +## CCITT Group 4 / T.6 "fax machine" compression support -This example uses the [fax crate](https://github.com/pdf-rs/fax) to provide CCITT Group 4 / T.6 decompression capabilities to +[This example](group_4) uses the [fax crate](https://github.com/pdf-rs/fax) to provide CCITT Group 4 / T.6 decompression capabilities to the image-tiff crate in a simple demo that accepts an arbitrary image file as the sole command line argument and will perform group 4 decompression on the input file if it is a big endian tiff file. Sample files are included under the data folder. \ No newline at end of file From 681fc0b6a72aff984c14c60ffa4c29381120b241 Mon Sep 17 00:00:00 2001 From: Richard Siomporas Date: Sun, 20 Aug 2023 12:33:19 -0400 Subject: [PATCH 3/7] Excluded examples folder from cargo file --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index a0cbcc80..7db1d5df 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ authors = ["The image-rs Developers"] repository = "https://github.com/image-rs/image-tiff" categories = ["multimedia::images", "multimedia::encoding"] -exclude = ["tests/images/*", "tests/fuzz_images/*"] +exclude = ["tests/images/*", "tests/fuzz_images/*", "examples/*"] [dependencies] weezl = "0.1.0" From d239ed9e400964207521692689fa73a9730a49c6 Mon Sep 17 00:00:00 2001 From: Richard Siomporas Date: Sun, 20 Aug 2023 12:35:36 -0400 Subject: [PATCH 4/7] Updated README with clearer English --- examples/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/README.md b/examples/README.md index 77ce9ad7..21f46540 100644 --- a/examples/README.md +++ b/examples/README.md @@ -5,5 +5,6 @@ Below are some examples of integrating image-tiff with other libraries for addit ## CCITT Group 4 / T.6 "fax machine" compression support [This example](group_4) uses the [fax crate](https://github.com/pdf-rs/fax) to provide CCITT Group 4 / T.6 decompression capabilities to -the image-tiff crate in a simple demo that accepts an arbitrary image file as the sole command line argument and will perform -group 4 decompression on the input file if it is a big endian tiff file. Sample files are included under the data folder. \ No newline at end of file +the image-tiff crate in a simple demo that accepts an arbitrary image file as the sole command line argument, then performs +group 4 decompression on the input file if it is a big endian tiff file and writes it out as a `.png` file. Sample files are included +under the data folder. \ No newline at end of file From 7438edb00ab046aa157be92c103e84052c21dbae Mon Sep 17 00:00:00 2001 From: Richard Siomporas Date: Sun, 20 Aug 2023 12:36:47 -0400 Subject: [PATCH 5/7] Renamed package for better clarity --- examples/group_4/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/group_4/Cargo.toml b/examples/group_4/Cargo.toml index 68c91e3d..feb45cbb 100644 --- a/examples/group_4/Cargo.toml +++ b/examples/group_4/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "tiff-issue" +name = "ccitt-group-4-tiff" version = "0.1.0" edition = "2021" From b6790f2e71d4f4da169a7a0c41efe791aac1cf1d Mon Sep 17 00:00:00 2001 From: Richard Siomporas Date: Sun, 20 Aug 2023 12:58:00 -0400 Subject: [PATCH 6/7] Updated endian-ness to be correct and consistent with code and example --- .vscode/launch.json | 141 +++++++++++++++++++++++++++++++++++ examples/README.md | 2 +- examples/group_4/src/main.rs | 2 +- 3 files changed, 143 insertions(+), 2 deletions(-) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..c84734a6 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,141 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in library 'tiff'", + "cargo": { + "args": [ + "test", + "--no-run", + "--lib", + "--package=tiff" + ], + "filter": { + "name": "tiff", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug integration test 'decode_images'", + "cargo": { + "args": [ + "test", + "--no-run", + "--test=decode_images", + "--package=tiff" + ], + "filter": { + "name": "decode_images", + "kind": "test" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug integration test 'decode_bigtiff_images'", + "cargo": { + "args": [ + "test", + "--no-run", + "--test=decode_bigtiff_images", + "--package=tiff" + ], + "filter": { + "name": "decode_bigtiff_images", + "kind": "test" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug integration test 'encode_images'", + "cargo": { + "args": [ + "test", + "--no-run", + "--test=encode_images", + "--package=tiff" + ], + "filter": { + "name": "encode_images", + "kind": "test" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug integration test 'fuzz_tests'", + "cargo": { + "args": [ + "test", + "--no-run", + "--test=fuzz_tests", + "--package=tiff" + ], + "filter": { + "name": "fuzz_tests", + "kind": "test" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug integration test 'encode_images_with_compression'", + "cargo": { + "args": [ + "test", + "--no-run", + "--test=encode_images_with_compression", + "--package=tiff" + ], + "filter": { + "name": "encode_images_with_compression", + "kind": "test" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug benchmark 'lzw'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bench=lzw", + "--package=tiff" + ], + "filter": { + "name": "lzw", + "kind": "bench" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + } + ] +} \ No newline at end of file diff --git a/examples/README.md b/examples/README.md index 21f46540..3680f748 100644 --- a/examples/README.md +++ b/examples/README.md @@ -6,5 +6,5 @@ Below are some examples of integrating image-tiff with other libraries for addit [This example](group_4) uses the [fax crate](https://github.com/pdf-rs/fax) to provide CCITT Group 4 / T.6 decompression capabilities to the image-tiff crate in a simple demo that accepts an arbitrary image file as the sole command line argument, then performs -group 4 decompression on the input file if it is a big endian tiff file and writes it out as a `.png` file. Sample files are included +group 4 decompression on the input file if it is a little endian tiff file and writes it out as a `.png` file. Sample files are included under the data folder. \ No newline at end of file diff --git a/examples/group_4/src/main.rs b/examples/group_4/src/main.rs index 2aade3d9..298655ec 100644 --- a/examples/group_4/src/main.rs +++ b/examples/group_4/src/main.rs @@ -48,7 +48,7 @@ fn image_preprocess_fax(bytes:Vec) -> Result,) -> Result, ImageError>{ - if bytes.len() > 3 && bytes[0] == 73 && bytes[1] == 73 // big endian, fine for POC + if bytes.len() > 3 && bytes[0] == 73 && bytes[1] == 73 // little endian, fine for POC && bytes[2] == 42{ let image = image_preprocess_fax(bytes).unwrap(); return resize_dyn_img_to_png_bytes(image.into()); From 3e964ae0519f87293890aae1261a5bb7171cadaf Mon Sep 17 00:00:00 2001 From: Richard Siomporas Date: Sun, 20 Aug 2023 12:58:50 -0400 Subject: [PATCH 7/7] Whoops! --- .vscode/launch.json | 141 -------------------------------------------- 1 file changed, 141 deletions(-) delete mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index c84734a6..00000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "lldb", - "request": "launch", - "name": "Debug unit tests in library 'tiff'", - "cargo": { - "args": [ - "test", - "--no-run", - "--lib", - "--package=tiff" - ], - "filter": { - "name": "tiff", - "kind": "lib" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug integration test 'decode_images'", - "cargo": { - "args": [ - "test", - "--no-run", - "--test=decode_images", - "--package=tiff" - ], - "filter": { - "name": "decode_images", - "kind": "test" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug integration test 'decode_bigtiff_images'", - "cargo": { - "args": [ - "test", - "--no-run", - "--test=decode_bigtiff_images", - "--package=tiff" - ], - "filter": { - "name": "decode_bigtiff_images", - "kind": "test" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug integration test 'encode_images'", - "cargo": { - "args": [ - "test", - "--no-run", - "--test=encode_images", - "--package=tiff" - ], - "filter": { - "name": "encode_images", - "kind": "test" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug integration test 'fuzz_tests'", - "cargo": { - "args": [ - "test", - "--no-run", - "--test=fuzz_tests", - "--package=tiff" - ], - "filter": { - "name": "fuzz_tests", - "kind": "test" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug integration test 'encode_images_with_compression'", - "cargo": { - "args": [ - "test", - "--no-run", - "--test=encode_images_with_compression", - "--package=tiff" - ], - "filter": { - "name": "encode_images_with_compression", - "kind": "test" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "type": "lldb", - "request": "launch", - "name": "Debug benchmark 'lzw'", - "cargo": { - "args": [ - "test", - "--no-run", - "--bench=lzw", - "--package=tiff" - ], - "filter": { - "name": "lzw", - "kind": "bench" - } - }, - "args": [], - "cwd": "${workspaceFolder}" - } - ] -} \ No newline at end of file