11using SixLabors . ImageSharp . PixelFormats ;
2+ using SixLabors . ImageSharp . Processing ;
23using Synercoding . FileFormats . Pdf . Helpers ;
34using Synercoding . FileFormats . Pdf . PdfInternals . Objects ;
45using Synercoding . FileFormats . Pdf . PdfInternals . XRef ;
@@ -71,7 +72,7 @@ public Rectangle TrimBox
7172 /// <param name="image">The image to be added</param>
7273 /// <param name="rectangle">The <see cref="Rectangle"/> that represents the placement on the page</param>
7374 /// <returns>This <see cref="PdfPage"/> so calls can be chained.</returns>
74- public PdfPage AddImage ( ImageSharp . Image < Rgba32 > image , Rectangle rectangle )
75+ public PdfPage AddImage ( ImageSharp . Image image , Rectangle rectangle )
7576 {
7677 return _addImage ( image , rectangle , true ) ;
7778 }
@@ -104,7 +105,7 @@ public PdfPage AddImage(Stream image, Rectangle rectangle)
104105 /// <param name="image">The image to be added</param>
105106 /// <param name="matrix">The <see cref="Matrix"/> that represents the placement on the page</param>
106107 /// <returns>This <see cref="PdfPage"/> so calls can be chained.</returns>
107- public PdfPage AddImage ( ImageSharp . Image < Rgba32 > image , Matrix matrix )
108+ public PdfPage AddImage ( ImageSharp . Image image , Matrix matrix )
108109 {
109110 return _addImage ( image , matrix , true ) ;
110111 }
@@ -131,32 +132,64 @@ public PdfPage AddImage(Stream image, Matrix matrix)
131132 return _addImage ( ImageSharp . Image . Load ( image ) , matrix , false ) ;
132133 }
133134
134- private PdfPage _addImage ( ImageSharp . Image < Rgba32 > image , Rectangle rectangle , bool clone )
135+ /// <summary>
136+ /// Add image to the <see cref="PdfPage"/>
137+ /// </summary>
138+ /// <param name="image">The image to be added</param>
139+ /// <param name="rectangle">The <see cref="Rectangle"/> that represents the placement on the page</param>
140+ /// <returns>This <see cref="PdfPage"/> so calls can be chained.</returns>
141+ public PdfPage AddImage ( Image image , Rectangle rectangle )
142+ {
143+ var matrix = new Matrix ( rectangle . URX - rectangle . LLX , 0 , 0 , rectangle . URY - rectangle . LLY , rectangle . LLX , rectangle . LLY ) ;
144+ return AddImage ( image , matrix ) ;
145+ }
146+
147+ /// <summary>
148+ /// Add image to the <see cref="PdfPage"/>
149+ /// </summary>
150+ /// <param name="image">The image to be added</param>
151+ /// <param name="matrix">The <see cref="Matrix"/> that represents the placement on the page</param>
152+ /// <returns>This <see cref="PdfPage"/> so calls can be chained.</returns>
153+ public PdfPage AddImage ( Image image , Matrix matrix )
154+ {
155+ var key = _addImageToResources ( image ) ;
156+ ContentStream . AddImage ( key , matrix ) ;
157+
158+ return this ;
159+ }
160+
161+ private PdfPage _addImage ( ImageSharp . Image image , Rectangle rectangle , bool clone )
135162 {
136163 var matrix = new Matrix ( rectangle . URX - rectangle . LLX , 0 , 0 , rectangle . URY - rectangle . LLY , rectangle . LLX , rectangle . LLY ) ;
137164
138165 return _addImage ( image , matrix , clone ) ;
139166 }
140167
141- private PdfPage _addImage ( ImageSharp . Image < Rgba32 > image , Matrix matrix , bool clone )
168+ private PdfPage _addImage ( ImageSharp . Image image , Matrix matrix , bool clone )
142169 {
143170 var key = _addImageToResources ( image , clone ) ;
144171 ContentStream . AddImage ( key , matrix ) ;
145172
146173 return this ;
147174 }
148175
149- private string _addImageToResources ( ImageSharp . Image < Rgba32 > image , bool clone )
176+ private string _addImageToResources ( ImageSharp . Image image , bool clone )
150177 {
151- var key = "Im" + System . Threading . Interlocked . Increment ( ref _pageCounter ) . ToString ( ) . PadLeft ( 6 , '0' ) ;
152- var id = _tableBuilder . ReserveId ( ) ;
153-
154178 if ( clone )
155179 {
156- image = image . Clone ( ) ;
180+ image = image . Clone ( ctx => { } ) ;
157181 }
158182
159- _images . Add ( key , new Image ( id , image ) ) ;
183+ var id = _tableBuilder . ReserveId ( ) ;
184+
185+ return _addImageToResources ( new Image ( id , image ) ) ;
186+ }
187+
188+ private string _addImageToResources ( Image image )
189+ {
190+ var key = "Im" + System . Threading . Interlocked . Increment ( ref _pageCounter ) . ToString ( ) . PadLeft ( 6 , '0' ) ;
191+
192+ _images . Add ( key , image ) ;
160193
161194 return key ;
162195 }
0 commit comments