[英]How to remove black border around transparent image in PDF created by iText
[英]iText: how to put transparent images into a pdf without making the transparent parts BLACK?
我在Android Studio项目中使用iText 5.5.9制作PDF文件。
添加图像时,PDF内的透明部分变为黑色。
我该如何避免呢?
这是我的代码中说明问题的部分:
// add card
Resources res=getResources();
Drawable drawable=res.getDrawable(R.drawable.card);
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] bitMapData = stream.toByteArray();
Image img=Image.getInstance(bitMapData);
img.scaleAbsolute(300f,156.3f);
img.setSmask(false);
doc.add(img);
如果要在iText中添加具有更宽(即笔触)的透明圆形图像,则可以添加具有笔触的圆形。
使用下面的代码(并更改为适合您的需要):
try {
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("myCirclepdffile.pdf"));
document.open();
PdfContentByte cb = writer.getDirectContent();
cb.circle(250.0f, 500.0f, 200.0f);
cb.stroke();
} catch (Exception e) {
System.err.println(e.getMessage());
}
PDF不支持透明图像(例如PNG或GIF的颜色看起来像是透明的),但iText支持透明图像。
通过添加不透明图像以及模仿透明度的图像蒙版,可以实现PDF中图像的透明度。 对于添加到PDF的每个透明图像,iText都会添加两个图像:不透明图像和蒙版。
对于支持透明度的PNG文件和GIF文件,这是正确的。 不幸的是,您使用的是JPEG格式,而JPEG不支持透明性。 请参见JPEG图像中的透明背景
使用PNG或GIF代替JPEG。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.