iTextSharp Ekstrakcja obrazu z przezroczystością

Używam iTextSharp i próbuję wyodrębnić obrazy z przezroczystością z pliku PDF. Po wyodrębnieniu obrazu przezroczystość staje się czarna i zostaje utracona. Znalazłem wiele przykładów ekstrakcji obrazów, ale wszystkie wydają się mieć ten sam problem. Kod, którego używam, znajduje się poniżej

Innym przykładem jest itextpdf.com/examples/iia.php?id=284. Ten przykład zawiera obrazy w sekcji „wyniki” u góry. Jeśli kliknieszImg7.png zobaczysz czarną ramkę na obrazie, jednak u dołu strony znajduje się link do oryginalnego obrazuinfo.png to pokazuje przezroczystość tak, jak powinna wyglądać. To jest dokładnie ten problem, w który wpadam. Każda pomoc lub pomysły byłyby mile widziane

public void ExtractImage(string pdfFile)
        {
            const int pageNumber = 1; //Page number to extract the image from
            PdfReader pdf = new PdfReader(pdfFile);
            PdfDictionary pg = pdf.GetPageN(pageNumber);
            PdfDictionary res = (PdfDictionary)PdfReader.GetPdfObject(pg.Get(PdfName.RESOURCES));
            PdfDictionary xobj = (PdfDictionary)PdfReader.GetPdfObject(res.Get(PdfName.XOBJECT));
            foreach (PdfName name in xobj.Keys)
            {
                PdfObject obj = xobj.Get(name);
                if (obj.IsIndirect())
                {
                    PdfDictionary tg = (PdfDictionary)PdfReader.GetPdfObject(obj);
                    string width = tg.Get(PdfName.WIDTH).ToString();
                    string height = tg.Get(PdfName.HEIGHT).ToString();
                    ImageRenderInfo imgRI =
                            ImageRenderInfo.CreateForXObject(new Matrix(float.Parse(width), float.Parse(height)),
                                                             (PRIndirectReference)obj, tg);

                    var fileType= imgRI.GetImage().GetFileType();
                    RenderImage(imgRI, imgPath + +imgRI.GetRef().Number + "_" + imgRI.GetRef().Generation + "test." + fileType);
                }
            }
            pdf.Close();
        }

        private void RenderImage(ImageRenderInfo renderInfo, string saveImageLocation)
        {
            PdfImageObject image = renderInfo.GetImage();

            using (var dotnetImg = image.GetDrawingImage())
            {
                if (dotnetImg != null)
                {
                    dotnetImg.Save(saveImageLocation);
                }
            }
        }

questionAnswers(1)

yourAnswerToTheQuestion