This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pdfbox-jbig2.git
The following commit(s) were added to refs/heads/master by this push:
new 797d738 PDFBOX-6162: Migrate SymbolDictionary and TextRegion to call
GenericRefinementRegionDecodingProcedure.decode() directly, removing deprecated
setParameters() usage
797d738 is described below
commit 797d7388f2c397e4bb5897dc87ac461d75e65962
Author: Maruan Sahyoun <[email protected]>
AuthorDate: Thu Apr 23 12:22:57 2026 +0200
PDFBOX-6162: Migrate SymbolDictionary and TextRegion to call
GenericRefinementRegionDecodingProcedure.decode() directly, removing deprecated
setParameters() usage
---
.../pdfbox/jbig2/segments/SymbolDictionary.java | 27 +++++++++-------------
.../apache/pdfbox/jbig2/segments/TextRegion.java | 20 +++++++++-------
2 files changed, 23 insertions(+), 24 deletions(-)
diff --git
a/src/main/java/org/apache/pdfbox/jbig2/segments/SymbolDictionary.java
b/src/main/java/org/apache/pdfbox/jbig2/segments/SymbolDictionary.java
index 3b2f7e7..5cddb11 100644
--- a/src/main/java/org/apache/pdfbox/jbig2/segments/SymbolDictionary.java
+++ b/src/main/java/org/apache/pdfbox/jbig2/segments/SymbolDictionary.java
@@ -25,6 +25,7 @@ import org.apache.pdfbox.jbig2.Bitmap;
import org.apache.pdfbox.jbig2.Dictionary;
import org.apache.pdfbox.jbig2.Region;
import org.apache.pdfbox.jbig2.SegmentHeader;
+import
org.apache.pdfbox.jbig2.decoder.GenericRefinementRegionDecodingProcedure;
import org.apache.pdfbox.jbig2.decoder.arithmetic.ArithmeticDecoder;
import org.apache.pdfbox.jbig2.decoder.arithmetic.ArithmeticIntegerDecoder;
import org.apache.pdfbox.jbig2.decoder.arithmetic.CX;
@@ -93,7 +94,6 @@ public class SymbolDictionary implements Dictionary
private TextRegion textRegion;
private GenericRegion genericRegion;
- private GenericRefinementRegion genericRefinementRegion;
private CX cx;
private CX cxIADH;
@@ -719,26 +719,21 @@ public class SymbolDictionary implements Dictionary
final int rdx, final int rdy)
throws IOException, InvalidHeaderValueException,
IntegerMaxValueException
{
- if (genericRefinementRegion == null)
- {
- genericRefinementRegion = new
GenericRefinementRegion(subInputStream);
-
- if (arithmeticDecoder == null)
- {
- arithmeticDecoder = new ArithmeticDecoder(subInputStream);
- }
+ if (arithmeticDecoder == null) {
+ arithmeticDecoder = new ArithmeticDecoder(subInputStream);
+ }
- if (cx == null)
- {
- cx = new CX(65536, 1);
- }
+ if (cx == null) {
+ cx = new CX(65536, 1);
}
// Parameters as shown in Table 18, page 36
- genericRefinementRegion.setParameters(cx, arithmeticDecoder,
sdrTemplate, symWidth,
- hcHeight, ibo, rdx, rdy, false, sdrATX, sdrATY);
+ final Bitmap symbol = GenericRefinementRegionDecodingProcedure.decode(
+ arithmeticDecoder, cx, symWidth, hcHeight,
+ sdrTemplate, false, ibo, rdx, rdy, sdrATX, sdrATY);
- addSymbol(genericRefinementRegion);
+ newSymbols[amountOfDecodedSymbols] = symbol;
+ sbSymbols.add(symbol);
}
private void decodeDirectlyThroughGenericRegion(final int symWidth, final
int hcHeight)
diff --git a/src/main/java/org/apache/pdfbox/jbig2/segments/TextRegion.java
b/src/main/java/org/apache/pdfbox/jbig2/segments/TextRegion.java
index a460de7..f1c01e6 100644
--- a/src/main/java/org/apache/pdfbox/jbig2/segments/TextRegion.java
+++ b/src/main/java/org/apache/pdfbox/jbig2/segments/TextRegion.java
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.pdfbox.jbig2.Bitmap;
import org.apache.pdfbox.jbig2.Region;
import org.apache.pdfbox.jbig2.SegmentHeader;
+import
org.apache.pdfbox.jbig2.decoder.GenericRefinementRegionDecodingProcedure;
import org.apache.pdfbox.jbig2.decoder.arithmetic.ArithmeticDecoder;
import org.apache.pdfbox.jbig2.decoder.arithmetic.ArithmeticIntegerDecoder;
import org.apache.pdfbox.jbig2.decoder.arithmetic.CX;
@@ -86,7 +87,6 @@ public class TextRegion implements Region
private ArithmeticDecoder arithmeticDecoder;
private ArithmeticIntegerDecoder integerDecoder;
- private GenericRefinementRegion genericRefinementRegion;
private CX cxIADT;
private CX cxIAFS;
@@ -669,16 +669,20 @@ public class TextRegion implements Region
final int genericRegionReferenceDX = (int) ((rdw >> 1) + rdx);
final int genericRegionReferenceDY = (int) ((rdh >> 1) + rdy);
- if (genericRefinementRegion == null)
- {
- genericRefinementRegion = new
GenericRefinementRegion(subInputStream);
+ if (arithmeticDecoder == null) {
+ arithmeticDecoder = new ArithmeticDecoder(subInputStream);
}
- genericRefinementRegion.setParameters(cx, arithmeticDecoder,
sbrTemplate,
- (int) (wo + rdw), (int) (ho + rdh), ibo,
genericRegionReferenceDX,
- genericRegionReferenceDY, false, sbrATX, sbrATY);
+ if (cx == null) {
+ cx = new CX(65536, 1);
+ }
- ib = genericRefinementRegion.getRegionBitmap();
+ ib = GenericRefinementRegionDecodingProcedure.decode(
+ arithmeticDecoder, cx,
+ (int) (wo + rdw), (int) (ho + rdh),
+ sbrTemplate, false, ibo,
+ genericRegionReferenceDX, genericRegionReferenceDY,
+ sbrATX, sbrATY);
/* 7 */
if (isHuffmanEncoded)