gpt4 book ai didi

java - iText7 图像透明度

转载 作者:行者123 更新时间:2023-12-02 01:06:46 30 4
gpt4 key购买 nike

我想向现有 pdf 添加透明 png 图像以模糊文本的某些部分。我不明白如何应用透明度

我尝试了文档中找到的几个代码示例,但没有一个有效

// Read the pdf input
PdfReader pdfReader = new PdfReader(value);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PdfWriter pdfWriter = new PdfWriter(outputStream);

PdfDocument pdfDoc = new PdfDocument(pdfReader, pdfWriter);
Document document = new Document(pdfDoc);
// Creating an ImageData object
ImageData data = ImageDataFactory.create(fileName);
data.setTransparency(new int[] {0xF0, 0xFF });

for (int x = 1; x < 800; ) {
for (int y = 1; y < 1000; ) {
Image image = new Image(data);
image.setFixedPosition(x , y);
document.add(image);

y = y + y1 + 40;
}
x = x + x1 + 40;
}

// The content has now been modified, return it as a stream
document.close();

当我使用 setTransparency 方法时,屏幕上不会显示任何内容,就好像它是完全透明的一样。如果我注释掉 setTransparency 方法,则会添加模糊图像,但根本不会添加透明度,从而使其无效。

我附上了两个输出 pdf 的屏幕截图。第一个是调用 setTransparency 方法时。第二个是 setTransparency 方法被注释掉时。

调用 setTransparency 时: enter image description here

当方法setTransparency被注释掉时 enter image description here

我希望能够设置透明度并在 pdf 顶部看到这些模糊的图像。我正在使用此图像来模糊文本: enter image description here

最佳答案

您的“透明图像”( 54-544263_face-blur-png-face-blur-overlay-png-transparent.png )根本不透明!它可能是透明图像在支持透明图像的图像编辑器中的外观的屏幕截图,并在其下方使用棋盘图案以可视化透明度。

<小时/>

稍微调查一下该示例图像的来源后:

您似乎已从 pngix.com 下载了预览图像。这些预览图像不包含实际的透明度,而是说明该透明度的效果。要从 pngix.com 获取具有当前 UI 的实际透明度图像,您必须非常努力地查找并找到页面上的“免费下载”按钮(对我来说,它夹在“赞助搜索”之间),然后是“弹出窗口中的“下载 PNG”按钮;这允许您下载具有实际透明度的图像。

<小时/>话虽这么说,您可以使用免费工具(例如)轻松地自己创建这种圆形淡入透明的图像。瘸子。来自 pngix.com 的图片仅供个人使用,因此理论上,如果您在没有额外许可的情况下专业使用它们,您可能需要处理法律问题。

更好的是,您实际上根本不需要位图图像,您还可以使用使用 vector 图形指令的 native PDF 机制,即无需引入大图像来查看结果高分辨率好!参见例如this answer 底部的示例屏幕截图,该图像是使用 TestTransparency 中的测试方法 testComplex 创建的测试类。

关于java - iText7 图像透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57723093/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com