Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将System.Drawing.Bitmap转换为java.awt.image.BuffereImage?_C#_Image_Pdfbox_Ikvm - Fatal编程技术网

C# 如何将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

我正在使用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 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,就像你在这里做的那样,也就是说,你的决定是好的:-)