I use ShapeRenderer to convert emf images to png images for my docx documents. But it seemed that transparency information is lost after converting to png files. The background is turned to pure white. Can I keep the transparency information after saving to png images?
@dajyaretakuya2 Could you please attach your document here for testing? We will check the issue and provide you more information.
@dajyaretakuya2 Thank you for additional information. You can achieve this by using empty color as a background color. For example see the following code.
In .NET:
Document doc = new Document(@"C:\Temp\in.docx");
Shape s = (Shape)doc.GetChild(NodeType.Shape, 0, true);
ImageSaveOptions opt = new ImageSaveOptions(SaveFormat.Png);
opt.PaperColor = Color.Empty;
s.GetShapeRenderer().Save(@"C:\Temp\out.png", opt);
In java:
Document doc = new Document("C:\\Temp\\in.docx");
Shape s = (Shape)doc.getChild(NodeType.SHAPE, 0, true);
ImageSaveOptions opt = new ImageSaveOptions(SaveFormat.PNG);
// Use transparent white as a background color.
opt.setPaperColor(new Color(255,255,255,0));
s.getShapeRenderer().save("C:\\Temp\\out.png", opt);
Ah yes. I did not see the ImageSaveOptions usage carefully. Finally I got the correct transparent png. Thanks very much!
1 Like