@@ -288,7 +288,7 @@ fn write(data: &ImageData, writer: &mut BiffWriter) {
288
288
}
289
289
if let Some ( jpeg) = & data. jpeg {
290
290
let bits = write_jpg ( jpeg) ;
291
- writer. write_tagged_data ( "JPEG" , & bits) ;
291
+ writer. write_tagged_data_without_size ( "JPEG" , & bits) ;
292
292
}
293
293
writer. write_tagged_f32 ( "ALTV" , data. alpha_test_value ) ;
294
294
if let Some ( is_opaque) = data. is_opaque {
@@ -383,6 +383,42 @@ mod test {
383
383
assert_eq ! ( read, img) ;
384
384
}
385
385
386
+ #[ test]
387
+ fn test_write_jpeg_should_have_tag_size_zero ( ) {
388
+ let image: ImageData = ImageData {
389
+ name : "name_value" . to_string ( ) ,
390
+ internal_name : Some ( "inme_value" . to_string ( ) ) ,
391
+ path : "path_value" . to_string ( ) ,
392
+ width : 1 ,
393
+ height : 2 ,
394
+ link : None ,
395
+ alpha_test_value : 1.0 ,
396
+ is_opaque : Some ( true ) ,
397
+ is_signed : Some ( false ) ,
398
+ jpeg : Some ( ImageDataJpeg {
399
+ path : "path_value" . to_string ( ) ,
400
+ name : "name_value" . to_string ( ) ,
401
+ internal_name : Some ( "inme_value" . to_string ( ) ) ,
402
+ // alpha_test_value: 1.0,
403
+ data : vec ! [ 1 , 2 , 3 ] ,
404
+ } ) ,
405
+ bits : None ,
406
+ } ;
407
+
408
+ let mut writer = BiffWriter :: new ( ) ;
409
+ ImageData :: biff_write ( & image, & mut writer) ;
410
+ let data = writer. get_data ( ) ;
411
+ let mut reader = BiffReader :: new ( & data) ;
412
+ reader. next ( false ) ; // NAME
413
+ reader. next ( false ) ; // INME
414
+ reader. next ( false ) ; // PATH
415
+ reader. next ( false ) ; // WDTH
416
+ reader. next ( false ) ; // HGHT
417
+ reader. next ( false ) ; // LINK
418
+ assert_eq ! ( reader. tag( ) . as_str( ) , "JPEG" ) ;
419
+ assert_eq ! ( reader. remaining_in_record( ) , 0 ) ;
420
+ }
421
+
386
422
#[ test]
387
423
fn test_write_read ( ) {
388
424
let image: ImageData = ImageData {
0 commit comments