C# 如何将System.Drawing.Bitmap转换为java.awt.image.BuffereImage?
我正在使用IKVM和PDFBox使用C#创建可访问的PDF。要将图像添加到文档中,我需要将System.Drawing.Bitmap转换为java.awt.image.BuffereImage。我正在尝试下面的代码段 代码:C# 如何将System.Drawing.Bitmap转换为java.awt.image.BuffereImage?,c#,image,pdfbox,ikvm,C#,Image,Pdfbox,Ikvm,我正在使用IKVM和PDFBox使用C#创建可访问的PDF。要将图像添加到文档中,我需要将System.Drawing.Bitmap转换为java.awt.image.BuffereImage。我正在尝试下面的代码段 代码: System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(imgLoc); java.awt.image.BufferedImage bufImg = .... //TO DO PDJpeg img = new PDJ
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(imgLoc);
java.awt.image.BufferedImage bufImg = .... //TO DO
PDJpeg img = new PDJpeg(document,bufImg);
contentStream.drawImage(img,50,50);
有人能帮我用C#中的PDFBOX将图像添加到PDFdoc吗
谢谢我解决了以下问题。使用PDPixelMap而不是位图
//png image
java.io.File file = new java.io.File(fileLoc);
java.awt.image.BufferedImage bufImg = javax.imageio.ImageIO.read(file);
PDXObject image = new PDPixelMap(doc,bufImg);
contentStream.drawXObject(image ,50,50, image.getWidth().image.getHeight());
buffereImage.getBitmap()
如果buffereImage是使用buffereImage.TYPE_INT\u RGB
或buffereImage.TYPE_INT\u ARGB创建的,则应返回System.Drawing.Bitmap
。我认为ikvm.awt
在内部使用((BufferedImage)img.getBitmap()
(其中img
为java.awt.Image
)返回位图。是否使用PDJpeg或PDPixelMap取决于源格式。如果是jpeg文件,则最好使用PDJpeg(PDDocument doc,InputStream is)
,因为这样可以将其直接存储为jpeg格式,也就是说,无需先解压缩。如果它是png,那么使用PDPixelmap,就像你在这里做的那样,也就是说,你的决定是好的:-)