@@ -8,6 +8,8 @@ use image::ImageDecoder;
8
8
use image:: codecs:: png:: PngDecoder ;
9
9
#[ cfg( feature = "webp" ) ]
10
10
use image:: codecs:: webp:: WebPDecoder ;
11
+ #[ cfg( feature = "tiff" ) ]
12
+ use image:: codecs:: tiff:: TiffDecoder ;
11
13
12
14
extern crate glob;
13
15
extern crate image;
@@ -18,6 +20,9 @@ const EXPECTED_PNG_METADATA: &str = "<?xpacket begin='\u{feff}' id='W5M0MpCehiHz
18
20
const XMP_WEBP_PATH : & str = "tests/images/webp/lossless_images/simple_xmp.webp" ;
19
21
const EXPECTED_WEBP_METADATA : & str = "<?xpacket begin='\u{feff} ' id='W5M0MpCehiHzreSzNTczkc9d'?>\n <x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 13.25'>\n <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>\n \n <rdf:Description rdf:about=''\n xmlns:dc='http://purl.org/dc/elements/1.1/'>\n <dc:subject>\n <rdf:Bag>\n <rdf:li>sunset, mountains, nature</rdf:li>\n </rdf:Bag>\n </dc:subject>\n </rdf:Description>\n </rdf:RDF>\n </x:xmpmeta>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <?xpacket end='w'?>" ;
20
22
23
+ const XMP_TIFF_PATH : & str = "tests/images/tiff/testsuite/l1_xmp.tiff" ;
24
+ const EXPECTED_METADATA_TIFF : & str = "<?xpacket begin='\u{feff} ' id='W5M0MpCehiHzreSzNTczkc9d'?>\n <x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 13.25'>\n <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>\n \n <rdf:Description rdf:about=''\n xmlns:dc='http://purl.org/dc/elements/1.1/'>\n <dc:subject>\n <rdf:Bag>\n <rdf:li>sunset, mountains, nature</rdf:li>\n </rdf:Bag>\n </dc:subject>\n </rdf:Description>\n </rdf:RDF>\n </x:xmpmeta>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <?xpacket end='w'?>" ;
25
+
21
26
#[ test]
22
27
#[ cfg( feature = "png" ) ]
23
28
fn test_read_xmp_png ( ) -> Result < ( ) , image:: ImageError > {
@@ -46,3 +51,16 @@ fn test_read_xmp_webp() -> Result<(), image::ImageError> {
46
51
47
52
Ok ( ( ) )
48
53
}
54
+
55
+ #[ test]
56
+ fn test_read_xmp_tiff ( ) -> Result < ( ) , image:: ImageError > {
57
+ let img_path = PathBuf :: from_str ( XMP_TIFF_PATH ) . unwrap ( ) ;
58
+
59
+ let data = fs:: read ( img_path) ?;
60
+ let mut tiff_decoder = TiffDecoder :: new ( std:: io:: Cursor :: new ( data) ) ?;
61
+ let metadata = tiff_decoder. xmp_metadata ( ) ?;
62
+ assert ! ( metadata. is_some( ) ) ;
63
+ assert_eq ! ( EXPECTED_METADATA_TIFF . as_bytes( ) , metadata. unwrap( ) ) ;
64
+
65
+ Ok ( ( ) )
66
+ }
0 commit comments