Looks great..
On Mar 30, 2016 19:11, "David Warring" <david.warr...@gmail.com> wrote:

> Hi Again,
> To get the ball rolling, attached is proposed patch to
> src/base/pdf-stm-f-pred.c.
>
> The crux of this patch is that encoded PNG predictor tags should be in the
> range 0..4, as specified in
> section 6 of RFC 2083 Portable Network Graphics Specification, not 10..14.
>
> There's also a couple of minor secondary fixes to (a) keep PNG, TIFF and
> NONE modes distinct and (b) ensure also PNG prediction arithmetic is
> unsigned (pdf_uchar_t, rather than pdf_char_t)..
>
> I haven't worked out how to drive the test sub-system yet, but the
> following program demonstrates some of the expected differences:
>
> include <stdio.h>
> #include <string.h>
> #include <stdlib.h>
> #include "pdf.h"
>
> void main() {
>   pdf_error_t *error = NULL;
>   pdf_char_t* buf = "\100\101\102"
>                     "\120\120\120";
>   pdf_size_t buflen = strlen(buf);
>   pdf_stm_t*  stm = pdf_stm_mem_new(buf, buflen, 0, PDF_STM_READ, &error);
>   pdf_hash_t* hash = pdf_hash_new(&error);
>
>   pdf_hash_add_size(hash, "Predictor", 11, &error);
>   pdf_hash_add_size(hash, "BitsPerComponent", 8, &error);
>   pdf_hash_add_size(hash, "Colors", 3, &error);
>   pdf_hash_add_size(hash, "Columns", 1, &error);
>
>   pdf_stm_install_filter(stm, PDF_STM_FILTER_PRED_ENC, hash, &error);
>
>   pdf_char_t outbuf[100];
>   pdf_size_t read_bytes;
>   pdf_stm_read(stm, outbuf, sizeof(outbuf), &read_bytes, &error);
>   fprintf(stdout, "read bytes: %ld", read_bytes);
>   /* dump the output buffer */
>   for (int i = 0; i < read_bytes; i++) {
>   char* fmt = i%4 ? " %d" : "\n[%d]";
>       fprintf(stdout, fmt, (int) outbuf[i]);
>   }
>   fprintf(stdout, "\n");
>
>   if (error) {
>     fprintf(stderr, "error: %s", pdf_error_get_message(error));
>     exit(1);
>   }
>   exit(0);
> }
>
> This program is encoding with the PNG 'sub' filter (/Predictor 11).
>
> Before applying the patch it produces
>
> [11] 64 1 1
> [11] 80 0 0
>
> After applying this patch:
>
> [1] 64 1 1
> [1] 80 0 0
>
> I'm hoping that someone on the mailing list has time to dust-off gnupdf and 
> look at the attached patch.
>
> Feedback welcome.
>
> Regards,
>
> David
>
>
> On Tue, Mar 29, 2016 at 3:46 PM, David Warring <david.warr...@gmail.com>
> wrote:
>
>> Hi All,
>> As a newcomer to gnupdf,  I've  gone to the trouble of downloading the
>> project from the bazaar repo at http://bzr.savannah.gnu.org/r/pdf and
>> building and installing (still works).
>>
>> At this stage, I'm most interested in filters and streams. I'm looking
>> for a suitable stream/filter/encryption backend for Perl 6 module which is
>> under development (https://github.com/p6-pdf/perl6-PDF-Tools).
>>
>> I realize that this project has been inactive for some-time,  but it
>> seems to me that the low level stuff that I'm interested in, such as
>> filters is working or close working, but may need some bug fixes and
>> general support to get it across the line.
>>
>> Is anyone interested in picking up bug fixing and general support for
>> gnupdf?
>>
>> Regards,
>> David Warring
>>
>
>

Reply via email to