From 2b74c58a45b67b487e68c5a50f139b4410628cf2 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Thu, 6 Aug 2020 23:45:24 +0200 Subject: [PATCH 1/2] add failing test for dc_get_filemeta() --- src/dc_tools.rs | 18 ++++++++++++++++++ test-data/image/image100x50.gif | Bin 0 -> 274 bytes 2 files changed, 18 insertions(+) create mode 100644 test-data/image/image100x50.gif diff --git a/src/dc_tools.rs b/src/dc_tools.rs index c46b75587..12034c47e 100644 --- a/src/dc_tools.rs +++ b/src/dc_tools.rs @@ -916,4 +916,22 @@ mod tests { "3h 1m 0s" ); } + + #[test] + fn test_get_filemeta() { + let data = include_bytes!("../test-data/image/avatar900x900.png"); + let (w, h) = dc_get_filemeta(data).unwrap(); + assert_eq!(w, 900); + assert_eq!(h, 900); + + let data = include_bytes!("../test-data/image/avatar1000x1000.jpg"); + let (w, h) = dc_get_filemeta(data).unwrap(); + assert_eq!(w, 1000); + assert_eq!(h, 1000); + + let data = include_bytes!("../test-data/image/image100x50.gif"); + let (w, h) = dc_get_filemeta(data).unwrap(); + assert_eq!(w, 100); + assert_eq!(h, 50); + } } diff --git a/test-data/image/image100x50.gif b/test-data/image/image100x50.gif new file mode 100644 index 0000000000000000000000000000000000000000..4fb120fff1ed2bb28213d57750affef86240cb80 GIT binary patch literal 274 zcmV+t0qy=rNk%w1VPpU@0HFf_At50mA|fLrBd6^sA^s6Va%Ew3Wn>_CX>@2HM@dak z04x9i003kFG5`Pq)|`*2%k2-NoV41Dv);V>4~F7Mmgb43>dLn63&-*()OHi(damsL zE|@I@KVJ}04D^yfVS@QX7MIY#(Mil*71@QB@pVFUk?kS8G>f^s4EkwZJKh%hIW8Zz z-S~9g+lOIiFql_3QCOuUb|{fpwe}e02M84zC^ZSEMu_=0An60h3F`UR1%bK=X8PA? zpejZBDi+IN+d13nx_8@qr%QUOBaB-b{OPOMn?#wc$E4Q0`s`qH!>S2f&E4(&4IVB& YPF`+)j-IZ*&ff0+4j(T+uTTI0JKRHl{r~^~ literal 0 HcmV?d00001 From 7a7cdad566814ed0fe142e686bb22157f6dba3ae Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Thu, 6 Aug 2020 23:45:37 +0200 Subject: [PATCH 2/2] fix dc_get_filemeta() --- src/dc_tools.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dc_tools.rs b/src/dc_tools.rs index 12034c47e..1d887edde 100644 --- a/src/dc_tools.rs +++ b/src/dc_tools.rs @@ -243,7 +243,7 @@ pub fn dc_get_filesuffix_lc(path_filename: impl AsRef) -> Option { /// Returns the `(width, height)` of the given image buffer. pub fn dc_get_filemeta(buf: &[u8]) -> Result<(u32, u32), Error> { - let image = image::io::Reader::new(Cursor::new(buf)); + let image = image::io::Reader::new(Cursor::new(buf)).with_guessed_format()?; let dimensions = image.into_dimensions()?; Ok(dimensions) }