@@ -270,6 +270,68 @@ public void ColorsInCssCanBeUsed()
270
270
Assert . Equal ( SKColors . Empty , pixmap . GetPixelColor ( 2 , 2 ) ) ;
271
271
Assert . Equal ( 0xFF71559B , pixmap . GetPixelColor ( 2 , 6 ) ) ;
272
272
}
273
+
274
+ [ Fact ]
275
+ public void SvgImageWithDecodingIssue_15442 ( )
276
+ {
277
+ var info = new ResizeImageInfo ( ) ;
278
+ info . Filename = "images/find_icon.svg" ;
279
+ var tools = new SkiaSharpSvgTools ( info , Logger ) ;
280
+ var dpiPath = new DpiPath ( "" , 1 ) ;
281
+
282
+ tools . Resize ( dpiPath , DestinationFilename ) ;
283
+
284
+ using var resultImage = SKBitmap . Decode ( DestinationFilename ) ;
285
+ Assert . Equal ( 200 , resultImage . Width ) ;
286
+ Assert . Equal ( 200 , resultImage . Height ) ;
287
+
288
+ using ( var image = SKImage . FromBitmap ( resultImage ) )
289
+ using ( var data = image . Encode ( SKEncodedImageFormat . Png , 100 ) )
290
+ using ( var stream = File . OpenWrite ( "images/find_icon.svg.png" ) )
291
+ {
292
+ data . SaveTo ( stream ) ;
293
+ }
294
+
295
+ using var pixmap = resultImage . PeekPixels ( ) ;
296
+
297
+ Assert . Equal ( ( SKColor ) 0x00000000 , pixmap . GetPixelColor ( 10 , 10 ) ) ;
298
+ Assert . Equal ( ( SKColor ) 0xFFA5ADF6 , pixmap . GetPixelColor ( 81 , 137 ) ) ;
299
+ Assert . Equal ( ( SKColor ) 0xFF635DF7 , pixmap . GetPixelColor ( 125 , 137 ) ) ;
300
+
301
+ Assert . Equal ( ( SKColor ) 0xFFA5ADF6 , pixmap . GetPixelColor ( 22 , 62 ) ) ;
302
+ Assert . Equal ( ( SKColor ) 0xFFA5ADF6 , pixmap . GetPixelColor ( 72 , 109 ) ) ;
303
+ Assert . Equal ( ( SKColor ) 0xFFA5ADF6 , pixmap . GetPixelColor ( 131 , 23 ) ) ;
304
+ Assert . Equal ( ( SKColor ) 0xFFA5ADF6 , pixmap . GetPixelColor ( 178 , 153 ) ) ;
305
+ Assert . Equal ( ( SKColor ) 0xFFA5ADF6 , pixmap . GetPixelColor ( 124 , 180 ) ) ;
306
+ }
307
+
308
+ [ Fact ]
309
+ public void SvgImageWithDecodingIssue_12109 ( )
310
+ {
311
+ var info = new ResizeImageInfo ( ) ;
312
+ info . Filename = "images/warning.svg" ;
313
+ var tools = new SkiaSharpSvgTools ( info , Logger ) ;
314
+ var dpiPath = new DpiPath ( "" , 1 ) ;
315
+
316
+ tools . Resize ( dpiPath , DestinationFilename ) ;
317
+
318
+ using var resultImage = SKBitmap . Decode ( DestinationFilename ) ;
319
+ Assert . Equal ( 42 , resultImage . Width ) ;
320
+ Assert . Equal ( 37 , resultImage . Height ) ;
321
+
322
+ using ( var image = SKImage . FromBitmap ( resultImage ) )
323
+ using ( var data = image . Encode ( SKEncodedImageFormat . Png , 100 ) )
324
+ using ( var stream = File . OpenWrite ( "images/warning.svg.png" ) )
325
+ {
326
+ data . SaveTo ( stream ) ;
327
+ }
328
+
329
+ using var pixmap = resultImage . PeekPixels ( ) ;
330
+
331
+ Assert . Equal ( ( SKColor ) 0x00000000 , pixmap . GetPixelColor ( 10 , 10 ) ) ;
332
+ Assert . Equal ( ( SKColor ) 0xffe26b00 , pixmap . GetPixelColor ( 20 , 3 ) ) ;
333
+ Assert . Equal ( ( SKColor ) 0xffe26b00 , pixmap . GetPixelColor ( 20 , 34 ) ) ;
334
+ }
273
335
}
274
336
}
275
337
}
0 commit comments