1
1
using SixLabors . ImageSharp . PixelFormats ;
2
+ using SixLabors . ImageSharp . Processing ;
2
3
using Synercoding . FileFormats . Pdf . Helpers ;
3
4
using Synercoding . FileFormats . Pdf . PdfInternals . Objects ;
4
5
using Synercoding . FileFormats . Pdf . PdfInternals . XRef ;
@@ -71,7 +72,7 @@ public Rectangle TrimBox
71
72
/// <param name="image">The image to be added</param>
72
73
/// <param name="rectangle">The <see cref="Rectangle"/> that represents the placement on the page</param>
73
74
/// <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 )
75
76
{
76
77
return _addImage ( image , rectangle , true ) ;
77
78
}
@@ -104,7 +105,7 @@ public PdfPage AddImage(Stream image, Rectangle rectangle)
104
105
/// <param name="image">The image to be added</param>
105
106
/// <param name="matrix">The <see cref="Matrix"/> that represents the placement on the page</param>
106
107
/// <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 )
108
109
{
109
110
return _addImage ( image , matrix , true ) ;
110
111
}
@@ -131,32 +132,64 @@ public PdfPage AddImage(Stream image, Matrix matrix)
131
132
return _addImage ( ImageSharp . Image . Load ( image ) , matrix , false ) ;
132
133
}
133
134
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 )
135
162
{
136
163
var matrix = new Matrix ( rectangle . URX - rectangle . LLX , 0 , 0 , rectangle . URY - rectangle . LLY , rectangle . LLX , rectangle . LLY ) ;
137
164
138
165
return _addImage ( image , matrix , clone ) ;
139
166
}
140
167
141
- private PdfPage _addImage ( ImageSharp . Image < Rgba32 > image , Matrix matrix , bool clone )
168
+ private PdfPage _addImage ( ImageSharp . Image image , Matrix matrix , bool clone )
142
169
{
143
170
var key = _addImageToResources ( image , clone ) ;
144
171
ContentStream . AddImage ( key , matrix ) ;
145
172
146
173
return this ;
147
174
}
148
175
149
- private string _addImageToResources ( ImageSharp . Image < Rgba32 > image , bool clone )
176
+ private string _addImageToResources ( ImageSharp . Image image , bool clone )
150
177
{
151
- var key = "Im" + System . Threading . Interlocked . Increment ( ref _pageCounter ) . ToString ( ) . PadLeft ( 6 , '0' ) ;
152
- var id = _tableBuilder . ReserveId ( ) ;
153
-
154
178
if ( clone )
155
179
{
156
- image = image . Clone ( ) ;
180
+ image = image . Clone ( ctx => { } ) ;
157
181
}
158
182
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 ) ;
160
193
161
194
return key ;
162
195
}
0 commit comments