From 2a3377ce9a39d47d29c95d5db64690ad749d8c94 Mon Sep 17 00:00:00 2001 From: Henrique Nakashima Date: Thu, 16 Aug 2018 15:47:56 +0000 Subject: Optimize rendering of two dimensional barcodes: deduplicate regions. Reduce the logical size of the barcode by removing unnecessary region duplication. As far as I can tell, the line thickness is useless and the aspect ratio causes arbitrary changes in rounding, but ultimately the dimensions of a barcode are defined by its width and height, rather than by this ratio. The improvement with this CL is from ~580ms to ~390ms per barcode, so about 1.5x. Combined with https://pdfium-review.googlesource.com/c/pdfium/+/40010 the improvement is to ~15ms, which is about 39x. This also fixes the rendering of the barcode in the pixel and corpus tests. You can verify this pointing a barcode reader app at the screen. It does not however fix every case, as the unit test is still unreadable. Bug: 872907, pdfium:1135 Change-Id: Ic28e60f54719552cfe69ace7ebc3f730c338a129 Reviewed-on: https://pdfium-review.googlesource.com/40030 Commit-Queue: Henrique Nakashima Reviewed-by: Lei Zhang Reviewed-by: Ryan Harrison --- xfa/fwl/cfx_barcode_unittest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'xfa/fwl') diff --git a/xfa/fwl/cfx_barcode_unittest.cpp b/xfa/fwl/cfx_barcode_unittest.cpp index 0c8a05fece..4b1dc059ce 100644 --- a/xfa/fwl/cfx_barcode_unittest.cpp +++ b/xfa/fwl/cfx_barcode_unittest.cpp @@ -125,7 +125,7 @@ TEST_F(BarcodeTest, Pdf417) { EXPECT_TRUE(Create(BC_PDF417)); EXPECT_TRUE(barcode()->Encode(L"clams")); RenderDevice(); - EXPECT_EQ("2bdb9b39f20c5763da6a0d7c7b1f6933", BitmapChecksum()); + EXPECT_EQ("3a154001167ff0b8511b72677dd4c5a4", BitmapChecksum()); } TEST_F(BarcodeTest, DataMatrix) { -- cgit v1.2.3