1
+ /*
2
+ This file is part of the iText (R) project.
3
+ Copyright (c) 1998-2017 iText Group NV
4
+ Authors: iText Software.
5
+
6
+ This program is free software; you can redistribute it and/or modify
7
+ it under the terms of the GNU Affero General Public License version 3
8
+ as published by the Free Software Foundation with the addition of the
9
+ following permission added to Section 15 as permitted in Section 7(a):
10
+ FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY
11
+ ITEXT GROUP. ITEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT
12
+ OF THIRD PARTY RIGHTS
13
+
14
+ This program is distributed in the hope that it will be useful, but
15
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16
+ or FITNESS FOR A PARTICULAR PURPOSE.
17
+ See the GNU Affero General Public License for more details.
18
+ You should have received a copy of the GNU Affero General Public License
19
+ along with this program; if not, see http://www.gnu.org/licenses or write to
20
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21
+ Boston, MA, 02110-1301 USA, or download the license from the following URL:
22
+ http://itextpdf.com/terms-of-use/
23
+
24
+ The interactive user interfaces in modified source and object code versions
25
+ of this program must display Appropriate Legal Notices, as required under
26
+ Section 5 of the GNU Affero General Public License.
27
+
28
+ In accordance with Section 7(b) of the GNU Affero General Public License,
29
+ a covered work must retain the producer line in every PDF that is created
30
+ or manipulated using iText.
31
+
32
+ You can be released from the requirements of the license by purchasing
33
+ a commercial license. Buying such a license is mandatory as soon as you
34
+ develop commercial activities involving the iText software without
35
+ disclosing the source code of your own applications.
36
+ These activities include: offering paid services to customers as an ASP,
37
+ serving PDFs on the fly in a web application, shipping iText with a closed
38
+ source product.
39
+
40
+ For more information, please contact iText Software Corp. at this
41
+
42
+ */
43
+ using System ;
44
+ using System . IO ;
45
+ using iTextSharp . testutils ;
46
+ using iTextSharp . text ;
47
+ using iTextSharp . text . pdf ;
48
+ using NUnit . Framework ;
49
+
50
+ namespace itextsharp . tests . iTextSharp . text . pdf {
51
+ public class PdfImageTest {
52
+ private const String target = "PdfImageTest/" ;
53
+ private const String source = "../../resources/text/pdf/PdfImageTest/" ;
54
+
55
+ [ SetUp ]
56
+ public static void setUp ( ) {
57
+ Directory . CreateDirectory ( target ) ;
58
+ }
59
+
60
+ [ Test ]
61
+ public void pngColorProfileTest ( ) {
62
+ simpleImageTest ( "pngColorProfileImage.pdf" , "test_icc.png" ) ;
63
+ }
64
+
65
+ [ Test ]
66
+ public void pngColorProfilePalletTest ( ) {
67
+ simpleImageTest ( "pngColorProfilePalletImage.pdf" , "test_icc_pallet.png" ) ;
68
+ }
69
+
70
+ [ Test ]
71
+ public void pngIncorrectColorProfileTest ( ) {
72
+ simpleImageTest ( "pngIncorrectProfileImage.pdf" , "test_incorrect_icc.png" ) ;
73
+ }
74
+
75
+ private void simpleImageTest ( String fileName , String imageName ) {
76
+ String outPath = target + fileName ;
77
+ String cmpPath = source + "cmp_" + fileName ;
78
+ String imgPath = source + imageName ;
79
+ String diff = "diff_" + fileName + "_" ;
80
+
81
+ Document document = new Document ( ) ;
82
+ PdfWriter writer = PdfWriter . GetInstance ( document , new FileStream ( outPath , FileMode . Create ) ) ;
83
+
84
+ document . Open ( ) ;
85
+ Image image = Image . GetInstance ( imgPath ) ;
86
+ image . ScaleToFit ( new Rectangle ( document . Left , document . Bottom , document . Right , document . Top ) ) ;
87
+ document . Add ( image ) ;
88
+ document . Close ( ) ;
89
+ writer . Close ( ) ;
90
+
91
+ Assert . Null ( new CompareTool ( ) . CompareByContent ( outPath , cmpPath , target , diff ) ) ;
92
+ }
93
+
94
+ }
95
+ }
0 commit comments