15 ScopedFPDFPage page(FPDFPage_New(doc.get(), 0, 100, 100));
16 EXPECT_EQ(0, FPDFPage_CountObjects(page.get()));
19 EXPECT_EQ(0, FPDFPage_CountObjects(page.get()));
21 FPDFPage_InsertObject(page.get(),
nullptr);
22 EXPECT_EQ(0, FPDFPage_CountObjects(page.get()));
24 FPDFPage_InsertObject(
nullptr, FPDFPageObj_NewImageObj(doc.get()));
25 EXPECT_EQ(0, FPDFPage_CountObjects(page.get()));
30 ScopedFPDFPage page(FPDFPage_New(doc.get(), 0, 100, 100));
31 EXPECT_EQ(0, FPDFPage_CountObjects(page.get()));
33 FPDFPage_InsertObject(page.get(), FPDFPageObj_NewImageObj(doc.get()));
34 EXPECT_EQ(1, FPDFPage_CountObjects(page.get()));
35 EXPECT_TRUE(FPDFPage_GenerateContent(page.get()));
40 ScopedFPDFPage page(FPDFPage_New(doc.get(), 0, 100, 100));
41 EXPECT_EQ(0, FPDFPage_CountObjects(page.get()));
43 constexpr int kBitmapSize = 50;
45 ASSERT_TRUE(FPDFBitmap_FillRect(bitmap.get(), 0, 0, kBitmapSize, kBitmapSize,
47 EXPECT_EQ(kBitmapSize, FPDFBitmap_GetWidth(bitmap.get()));
48 EXPECT_EQ(kBitmapSize, FPDFBitmap_GetHeight(bitmap.get()));
50 ScopedFPDFPageObject page_image(FPDFPageObj_NewImageObj(doc.get()));
51 FPDF_PAGE pages_array[] = {page.get()};
53 FPDFImageObj_SetBitmap(pages_array, 0, page_image.get(), bitmap.get()));
54 static constexpr FS_MATRIX kScaleBitmapMatrix{kBitmapSize, 0, 0,
56 ASSERT_TRUE(FPDFPageObj_SetMatrix(page_image.get(), &kScaleBitmapMatrix));
57 FPDFPage_InsertObject(page.get(), page_image.release());
58 EXPECT_EQ(1, FPDFPage_CountObjects(page.get()));
59 EXPECT_TRUE(FPDFPage_GenerateContent(page.get()));
63 CreateEmptyDocumentWithoutFormFillEnvironment();
64 constexpr int kPageWidth = 200;
65 constexpr int kPageHeight = 200;
66 ScopedFPDFPage page(FPDFPage_New(document(), 0, kPageWidth, kPageHeight));
69 ScopedFPDFPageObject image(FPDFPageObj_NewImageObj(document()));
72 FileAccessForTesting file_access(
"mona_lisa.jpg");
73 FPDF_PAGE temp_page = page.get();
75 FPDFImageObj_LoadJpegFile(&temp_page, 1, image.get(), &file_access));
77 constexpr int kImageWidth = 120;
78 constexpr int kImageHeight = 120;
79 const char kImageChecksum[] =
"58589c36b3b27a0058f5ca1fbed4d5e5";
80 const char kPageChecksum[] =
"52b3a852f39c5fa9143e59d805dcb343";
82 ScopedFPDFBitmap image_bitmap(FPDFImageObj_GetBitmap(image.get()));
83 CompareBitmap(image_bitmap.get(), kImageWidth, kImageHeight,
87 FPDFImageObj_SetMatrix(image.get(), kImageWidth, 0, 0, kImageHeight, 0, 0);
88 FPDFPage_InsertObject(page.get(), image.release());
89 FPDFPage_GenerateContent(page.get());
91 ScopedFPDFBitmap page_bitmap = RenderPage(page.get());
92 CompareBitmap(page_bitmap.get(), kPageWidth, kPageHeight, kPageChecksum);
95 ASSERT_TRUE(FPDF_SaveAsCopy(document(),
this, 0));
96 VerifySavedDocument(kPageWidth, kPageHeight, kPageChecksum);
100 CreateEmptyDocumentWithoutFormFillEnvironment();
101 constexpr int kPageWidth = 200;
102 constexpr int kPageHeight = 200;
103 ScopedFPDFPage page(FPDFPage_New(document(), 0, kPageWidth, kPageHeight));
106 ScopedFPDFPageObject image(FPDFPageObj_NewImageObj(document()));
109 FileAccessForTesting file_access(
"mona_lisa.jpg");
110 FPDF_PAGE temp_page = page.get();
111 EXPECT_TRUE(FPDFImageObj_LoadJpegFileInline(&temp_page, 1, image.get(),
114 constexpr int kImageWidth = 120;
115 constexpr int kImageHeight = 120;
116 const char kImageChecksum[] =
"58589c36b3b27a0058f5ca1fbed4d5e5";
117 const char kPageChecksum[] =
"52b3a852f39c5fa9143e59d805dcb343";
119 ScopedFPDFBitmap image_bitmap(FPDFImageObj_GetBitmap(image.get()));
120 CompareBitmap(image_bitmap.get(), kImageWidth, kImageHeight,
124 FPDFImageObj_SetMatrix(image.get(), kImageWidth, 0, 0, kImageHeight, 0, 0);
125 FPDFPage_InsertObject(page.get(), image.release());
126 FPDFPage_GenerateContent(page.get());
128 ScopedFPDFBitmap page_bitmap = RenderPage(page.get());
129 CompareBitmap(page_bitmap.get(), kPageWidth, kPageHeight, kPageChecksum);
132 ASSERT_TRUE(FPDF_SaveAsCopy(document(),
this, 0));
133 VerifySavedDocument(kPageWidth, kPageHeight, kPageChecksum);
138 ScopedFPDFPage page(FPDFPage_New(doc.get(), 0, 100, 100));
139 ScopedFPDFPageObject image(FPDFPageObj_NewImageObj(doc.get()));
142 FPDF_PAGE page_ptr = page.get();
143 FPDF_PAGE* pages = &page_ptr;
144 EXPECT_TRUE(FPDFImageObj_SetBitmap(
nullptr, 1, image.get(), bitmap.get()));
145 EXPECT_TRUE(FPDFImageObj_SetBitmap(pages, 0, image.get(), bitmap.get()));
146 EXPECT_FALSE(FPDFImageObj_SetBitmap(pages, 1,
nullptr, bitmap.get()));
147 EXPECT_FALSE(FPDFImageObj_SetBitmap(pages, 1, image.get(),
nullptr));
152 ScopedFPDFPageObject image(FPDFPageObj_NewImageObj(doc.get()));
157 EXPECT_FALSE(FPDFPageObj_GetMatrix(image.get(),
nullptr));
159 EXPECT_TRUE(FPDFPageObj_GetMatrix(image.get(), &matrix));
160 EXPECT_FLOAT_EQ(1.0f, matrix.a);
161 EXPECT_FLOAT_EQ(0.0f, matrix.b);
162 EXPECT_FLOAT_EQ(0.0f, matrix.c);
163 EXPECT_FLOAT_EQ(1.0f, matrix.d);
164 EXPECT_FLOAT_EQ(0.0f, matrix.e);
165 EXPECT_FLOAT_EQ(0.0f, matrix.f);
167 static constexpr FS_MATRIX kMatrix{1, 2, 3, 4, 5, 6};
168 EXPECT_TRUE(FPDFPageObj_SetMatrix(image.get(), &kMatrix));
169 EXPECT_TRUE(FPDFPageObj_GetMatrix(image.get(), &matrix));
170 EXPECT_FLOAT_EQ(1.0f, matrix.a);
171 EXPECT_FLOAT_EQ(2.0f, matrix.b);
172 EXPECT_FLOAT_EQ(3.0f, matrix.c);
173 EXPECT_FLOAT_EQ(4.0f, matrix.d);
174 EXPECT_FLOAT_EQ(5.0f, matrix.e);
175 EXPECT_FLOAT_EQ(6.0f, matrix.f);
179 constexpr int kExpectedWidth = 200;
180 constexpr int kExpectedHeight = 300;
181 constexpr char kExpectedChecksum[] =
"617b1d57c30c516beee86e0781ff7810";
183 OpenDocument(
"bug_2132.pdf");
184 FPDF_PAGE page = LoadPage(0);
188 ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
189 CompareBitmap(bitmap.get(), kExpectedWidth, kExpectedHeight,
199 EXPECT_FLOAT_EQ(60.0f, matrix.a);
200 EXPECT_FLOAT_EQ(0.0f, matrix.b);
201 EXPECT_FLOAT_EQ(0.0f, matrix.c);
202 EXPECT_FLOAT_EQ(30.0f, matrix.d);
203 EXPECT_FLOAT_EQ(0.0f, matrix.e);
204 EXPECT_FLOAT_EQ(270.0f, matrix.f);
208 ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
209 CompareBitmap(bitmap.get(), kExpectedWidth, kExpectedHeight,
214 ASSERT_TRUE(FPDF_SaveAsCopy(document(),
this, 0));
217 ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
218 CompareBitmap(bitmap.get(), kExpectedWidth, kExpectedHeight,
224 VerifySavedDocument(kExpectedWidth, kExpectedHeight, kExpectedChecksum);
228 constexpr int kExpectedWidth = 200;
229 constexpr int kExpectedHeight = 300;
230 constexpr char kExpectedChecksum[] =
"fcb9007fd901d2052e2bd1c147b82800";
232 OpenDocument(
"form_object_with_image.pdf");
233 FPDF_PAGE page = LoadPage(0);
237 ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
238 CompareBitmap(bitmap.get(), kExpectedWidth, kExpectedHeight,
248 EXPECT_FLOAT_EQ(60.0f, matrix.a);
249 EXPECT_FLOAT_EQ(0.0f, matrix.b);
250 EXPECT_FLOAT_EQ(0.0f, matrix.c);
251 EXPECT_FLOAT_EQ(30.0f, matrix.d);
252 EXPECT_FLOAT_EQ(0.0f, matrix.e);
253 EXPECT_FLOAT_EQ(270.0f, matrix.f);
257 ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
258 CompareBitmap(bitmap.get(), kExpectedWidth, kExpectedHeight,
267 EXPECT_FLOAT_EQ(1.0f, matrix.a);
268 EXPECT_FLOAT_EQ(0.0f, matrix.b);
269 EXPECT_FLOAT_EQ(0.0f, matrix.c);
270 EXPECT_FLOAT_EQ(1.0f, matrix.d);
271 EXPECT_FLOAT_EQ(1.0f, matrix.e);
272 EXPECT_FLOAT_EQ(0.0f, matrix.f);
276 ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
277 CompareBitmap(bitmap.get(), kExpectedWidth, kExpectedHeight,
282 ASSERT_TRUE(FPDF_SaveAsCopy(document(),
this, 0));
285 ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
286 CompareBitmap(bitmap.get(), kExpectedWidth, kExpectedHeight,
292 VerifySavedDocument(kExpectedWidth, kExpectedHeight, kExpectedChecksum);