Hi Paulo,
Thanks for the quick response.
The original image is a JPEG.
Why is that formula used? On the tutorial, an 8 X 8 mask uses 8 bytes, but
would be 15 bytes using the formula below.
So, assuming that I need 888 bytes for a mask with 6750 pixels, how are the
byte values computed?
Thanks for your help,
Chris
"Paulo Soares"
<[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]>,
<[EMAIL PROTECTED]>
Sent by: cc:
[EMAIL PROTECTED] Subject: Re: [iText-questions]
ArrayIndexOutOfBoundsException when masking an image
eforge.net
07/29/2003 02:25 PM
The number of bytes must be:
(width+7)/8 * height
What is your original image format before the PlanarImage?
Best Regards,
Paulo Soares
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, July 29, 2003 19:50
Subject: [iText-questions] ArrayIndexOutOfBoundsException when masking an
image
> Hello,
>
> I have an image of a signature with height=50 and width=135 that I would
> like to insert into a PDF. I would like to mask it with the signature
> itself so that the white background of the image is gone and only the
> signature remains. I've tried using the code below to do this, but I
> get
> the following exception. Am I constructing the mask correctly? I
> assumed
> that the number of bytes in the mask should be equal to the ceiling of
> the
> number of pixels divided by 8(844 in this case). Is this correct?
>
> java.lang.ArrayIndexOutOfBoundsException: 844
> at com.lowagie.text.pdf.CCITTG4Encoder.nextState(Unknown Source)
> at com.lowagie.text.pdf.CCITTG4Encoder.encodeT6(Unknown Source)
> at com.lowagie.text.pdf.CCITTG4Encoder.compress(Unknown Source)
> at com.lowagie.text.Image.getInstance(Unknown Source)
> at com.lowagie.text.Image.getInstance(Unknown Source)
>
>
> Here is the code:
> <snip>
> PlanarImage planarImage = getPlanarImage(value);
> byte[] mask = createMask(planarImage);
> Image maskImage =
> Image.getInstance(
> planarImage.getData().getWidth(),
> planarImage.getData().getHeight(),
> 1,
> 1,
> mask);
>
> maskImage.makeMask();
> maskImage.setInvertMask(true);
>
> image.setAbsolutePosition(pageTokenDefinition.getX(),
> pageTokenDefinition.getY());
> image.setImageMask(maskImage);
> pdfTemplate.addImage(image);
> </snip>
>
> private static byte[] createMask(PlanarImage image) {
> double[][] pixels = imageToBandArray(image, 0);
> int width = pixels[0].length;
> int height = pixels.length;
> byte[] mask = new byte[(int)Math.ceil(width * height / 8.0)];
> int maskIndex = 0;
> for (int pixelIndex = 0; pixelIndex < width * height;
> pixelIndex++) {
> if (pixels[pixelIndex / width][pixelIndex % width] == 0) {
> mask[(int)Math.floor(pixelIndex / 8.0)] |= (1 << (7 -
> pixelIndex % 8));
> }
> }
> return mask;
> }
>
> public static double[][] imageToBandArray(PlanarImage image, int
> band) {
> Raster raster = image.getData();
> int width = raster.getWidth();
> int height = raster.getHeight();
> int bands = raster.getNumBands();
> double[][] bandArray = new double[height][width];
> for (int n = 0; n < height; n++) {
> raster.getSamples(0, n, width, 1, band, bandArray[n]);
> }
> return bandArray;
> }
>
> Thanks,
> Chris
>
>
>
> -------------------------------------------------------
> This SF.Net email sponsored by: Free pre-built ASP.NET sites including
> Data Reports, E-commerce, Portals, and Forums are available now.
> Download today and enter to win an XBOX or Visual Studio .NET.
> http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01
> /01
> _______________________________________________
> iText-questions mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/itext-questions
>
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
iText-questions mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/itext-questions
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
iText-questions mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/itext-questions