Skip to content

Commit 851cd0e

Browse files
committed
Placeholder for tiff support
1 parent b2ca042 commit 851cd0e

File tree

4 files changed

+27
-6
lines changed

4 files changed

+27
-6
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ readme = "README.md"
1111
[dependencies]
1212
image = "0.25.5"
1313
strum_macros = "0.27.1"
14+
tiff = "0.9.1"

src/lib.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
mod jpeg;
22
use jpeg::JPEGReader;
3-
mod tags;
3+
mod tiff;
4+
use tiff::TIFFReader;
45
mod reader;
6+
mod tags;
57
use image::{ImageFormat, ImageReader};
68
use std::collections::HashMap;
79
use std::error::Error;
@@ -39,17 +41,16 @@ impl IPTC {
3941
let mut buffer: Vec<u8> = Vec::new();
4042
bufreader.read_to_end(&mut buffer)?;
4143

42-
if format == ImageFormat::Tiff {
43-
println!("It's a tiff");
44-
}
45-
4644
let mut data = HashMap::new();
4745

4846
// Check if the file is a JPEG
4947
if format == ImageFormat::Jpeg {
5048
data = JPEGReader::read_iptc(&buffer)?;
49+
} else if format == ImageFormat::Tiff {
50+
println!("TIFF file detected");
51+
data = TIFFReader::read_iptc(&buffer)?;
5152
} else {
52-
println!("Not a JPEG file, only JPEG files are supported");
53+
println!("Unsupported file, only JPEG & Tiff files are supported");
5354
}
5455

5556
Ok(IPTC { data })

src/tiff.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
use crate::ReadUtils;
2+
use crate::reader::read_iptc_data;
3+
use crate::tags::IPTCTag;
4+
use std::collections::HashMap;
5+
use std::error::Error;
6+
use std::io::Cursor;
7+
use tiff::decoder::Decoder;
8+
9+
pub(crate) struct TIFFReader;
10+
11+
impl TIFFReader {
12+
pub fn read_iptc(buffer: &Vec<u8>) -> Result<HashMap<IPTCTag, String>, Box<dyn Error>> {
13+
let cursor = Cursor::new(buffer);
14+
let decoder = Decoder::new(cursor);
15+
16+
Ok(HashMap::new())
17+
}
18+
}

0 commit comments

Comments
 (0)