[英]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.