Hi,
I am trying to add a transparent PNG image to a PDF file. When I do this, the transparent background is rendered as black instead of transparent.
How do I do this?
Thanks,
Chris
Hi,
I am trying to add a transparent PNG image to a PDF file. When I do this, the transparent background is rendered as black instead of transparent.
How do I do this?
Thanks,
Chris
Hi Chris,
Thank you for considering Aspose.
Can you please provide your image and code so we can test it?
Hi,
It seems that this is only a problem when I try to add the image from memory. When I save it to a file first, then it works fine. Here is the code I am using to add it from memory and I have attached the image file and the PDF produced.
Dim PDFDocument As New Aspose.Pdf.Pdf
Dim MasterSection As Aspose.Pdf.Section
Dim NewImage As Aspose.Pdf.Image
Dim stmImage As System.IO.MemoryStream
Dim bmp As Drawing.Image
MasterSection = New Section
PDFDocument.Sections.Add(MasterSection)
NewImage = New Aspose.Pdf.Image(MasterSection)
bmp = Drawing.Bitmap.FromFile("test2.png")
stmImage = New System.IO.MemoryStream
bmp.Save(stmImage, System.Drawing.Imaging.ImageFormat.Png)
With NewImage
.ImageInfo.OpenType = ImageOpenType.Memory
.ImageInfo.MemoryData = stmImage.ToArray
.ImageInfo.ImageFileType = ImageFileType.MemoryBmp
End With
stmImage.Close()
MasterSection.Paragraphs.Add(NewImage)
PDFDocument.Save("test.pdf")
Hi,
Please take the following code as an example to resolve the problem. It works well in my test.
[C#]
Aspose.Pdf.Pdf pdf = new Aspose.Pdf.Pdf();
Aspose.Pdf.Section sec = pdf.Sections.Add();
Aspose.Pdf.Image
png = new Aspose.Pdf.Image(sec);
System.Drawing.Bitmap
bm;
bm = new
System.Drawing.Bitmap("F:/temp/test2.png");
MemoryStream ms = new
MemoryStream();
bm.Save(ms,
System.Drawing.Imaging.ImageFormat.Png);
png.ImageInfo.ImageFileType = ImageFileType.Png;
png.ImageInfo.ImageStream = ms;
sec.Paragraphs.Add(png);
pdf.Save(@"F:/temp/test.pdf");
Thanks.
Best regards.
Worked perfectly thanks, so what is the difference between ImageInfo.MemoryData and ImageInfo.ImageStream?
Hi,
As you can see from the API reference, the ImageInfo.MemoryData is obsolete. Please use ImageInfo.ImageStream instead.