iTextSharp jbig2 кодировщик - PullRequest
       47

iTextSharp jbig2 кодировщик

1 голос
/ 23 марта 2011
string imgfile = @"C:\users\me\desktop\test.jpg";

Bitmap bmp = new Bitmap(imgfile);
Bitmap bw = ConvertTo1Bpp(bmp); //make b+w

Document doc = 
    new Document(new iTextSharp.text.Rectangle(bmp.Width, bmp.Height));

PdfWriter.GetInstance(doc, 
    new System.IO.FileStream(
        @"C:\users\me\desktop\test.pdf", 
        System.IO.FileMode.Create, 
        System.IO.FileAccess.ReadWrite));

iTextSharp.text.ImgJBIG2 i = 
    ((iTextSharp.text.ImgJBIG2)iTextSharp.text.ImgJBIG2.GetInstance(
        bmp, System.Drawing.Imaging.ImageFormat.Bmp));

doc.Open();
doc.Add(i);
doc.Close();

Я не могу найти хорошую документацию для этого с iTextSharp. То, что я пытаюсь сделать, это взять файл Jpeg и преобразовать его в PDF, встроенный в черно-белое изображение JBig2. Я получаю ошибку InvalidCastException между "iTextSharp.text.ImageRaw" и "iTextSharp.text.ImageJBig2" ... есть ли альтернатива тому, что у меня есть выше?

EDIT
ImgJBig2 просто представляет изображение, уже закодированное в JBig2, я верю сейчас. То, что я ищу, - это что-то, что возьмет растровое изображение и закодирует его в растровое изображение BW JBig2, которое я могу поместить в PDF.

1 Ответ

2 голосов
/ 23 марта 2011

Насколько я могу судить, вариантов кодирования JBig2 не так много и нет нативных свободных.

Последний создает программу CLI, которую вы можете использовать для сценария P / Invoke или, в худшем случае, против сценария, поэтому я думаю, что это ваш лучший вариант, если вы не хотите платить. JBIG2 предлагает такое большее сжатие по сравнению с другими форматами?

...