@@ -6,6 +6,8 @@ use image::ImageDecoder;
6
6
7
7
#[ cfg( feature = "png" ) ]
8
8
use image:: codecs:: png:: PngDecoder ;
9
+ #[ cfg( feature = "tiff" ) ]
10
+ use image:: codecs:: tiff:: TiffDecoder ;
9
11
#[ cfg( feature = "webp" ) ]
10
12
use image:: codecs:: webp:: WebPDecoder ;
11
13
@@ -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,17 @@ fn test_read_xmp_webp() -> Result<(), image::ImageError> {
46
51
47
52
Ok ( ( ) )
48
53
}
54
+
55
+ #[ test]
56
+ #[ cfg( feature = "tiff" ) ]
57
+ fn test_read_xmp_tiff ( ) -> Result < ( ) , image:: ImageError > {
58
+ let img_path = PathBuf :: from_str ( XMP_TIFF_PATH ) . unwrap ( ) ;
59
+
60
+ let data = fs:: read ( img_path) ?;
61
+ let mut tiff_decoder = TiffDecoder :: new ( std:: io:: Cursor :: new ( data) ) ?;
62
+ let metadata = tiff_decoder. xmp_metadata ( ) ?;
63
+ assert ! ( metadata. is_some( ) ) ;
64
+ assert_eq ! ( EXPECTED_METADATA_TIFF . as_bytes( ) , metadata. unwrap( ) ) ;
65
+
66
+ Ok ( ( ) )
67
+ }
0 commit comments