@@ -452,6 +452,45 @@ public void Issue2758_DecodeWorks<TPixel>(TestImageProvider<TPixel> provider)
452
452
image . Save ( ms , new JpegEncoder ( ) ) ;
453
453
}
454
454
455
+ // https://github.com/SixLabors/ImageSharp/issues/2857
456
+ [ Theory ]
457
+ [ WithFile ( TestImages . Jpeg . Issues . Issue2857 , PixelTypes . Rgb24 ) ]
458
+ public void Issue2857_SubSubIfds < TPixel > ( TestImageProvider < TPixel > provider )
459
+ where TPixel : unmanaged, IPixel < TPixel >
460
+ {
461
+ using Image < TPixel > image = provider . GetImage ( JpegDecoder . Instance ) ;
462
+
463
+ Assert . Equal ( 5616 , image . Width ) ;
464
+ Assert . Equal ( 3744 , image . Height ) ;
465
+
466
+ JpegMetadata meta = image . Metadata . GetJpegMetadata ( ) ;
467
+ Assert . Equal ( 92 , meta . LuminanceQuality ) ;
468
+ Assert . Equal ( 93 , meta . ChrominanceQuality ) ;
469
+
470
+ ExifProfile exifProfile = image . Metadata . ExifProfile ;
471
+ Assert . NotNull ( exifProfile ) ;
472
+
473
+ using MemoryStream ms = new ( ) ;
474
+ bool hasThumbnail = exifProfile . TryCreateThumbnail ( out _ ) ;
475
+ Assert . False ( hasThumbnail ) ;
476
+
477
+ Assert . Equal ( "BilderBox - Erwin Wodicka / [email protected] " , exifProfile . GetValue ( ExifTag . Copyright ) . Value ) ;
478
+ Assert . Equal ( "Adobe Photoshop CS3 Windows" , exifProfile . GetValue ( ExifTag . Software ) . Value ) ;
479
+
480
+ Assert . Equal ( "Carers; seniors; caregiver; senior care; retirement home; hands; old; elderly; elderly caregiver; elder care; elderly care; geriatric care; nursing home; age; old age care; outpatient; needy; health care; home nurse; home care; sick; retirement; medical; mobile; the elderly; nursing department; nursing treatment; nursing; care services; nursing services; nursing care; nursing allowance; nursing homes; home nursing; care category; nursing class; care; nursing shortage; nursing patient care staff\0 " , exifProfile . GetValue ( ExifTag . XPKeywords ) . Value ) ;
481
+
482
+ Assert . Equal (
483
+ new EncodedString ( EncodedString . CharacterCode . ASCII , "StockSubmitter|Miscellaneous||Miscellaneous$|00|0000330000000110000000000000000|22$@NA_1005010.460@[email protected] $$@$@26$$@$@$@$@205$@$@$@$@$@$@$@$@$@43$@$@$@[email protected] $$@90$$@22$@$@$@$@$@$@$|||" ) ,
484
+ exifProfile . GetValue ( ExifTag . UserComment ) . Value ) ;
485
+
486
+ // the profile contains 4 duplicated UserComment
487
+ Assert . Equal ( 1 , exifProfile . Values . Count ( t => t . Tag == ExifTag . UserComment ) ) ;
488
+
489
+ image . Mutate ( x => x . Crop ( new ( 0 , 0 , 100 , 100 ) ) ) ;
490
+
491
+ image . Save ( ms , new JpegEncoder ( ) ) ;
492
+ }
493
+
455
494
private static void VerifyEncodedStrings ( ExifProfile exif )
456
495
{
457
496
Assert . NotNull ( exif ) ;
0 commit comments