当前位置: 首页 > 面试题库 >

保存具有透明背景的缓冲图像

郭云
2023-03-14
问题内容

我将签名图像另存为.jpg图片。我使用graphic2d在图像上绘制签名的每个像素(使用签名板获得),它可以正常工作,但我总是得到白色背景。如果我想将签名放在PDF文档上,jpg图像的白色正方形的边框会覆盖PDF的某些单词。

我想要得到的是保存带有透明背景的jpg图像,因此当我将其放置在PDF上时,没有单词被白色图像背景覆盖,只有签名行。

这是保存缓冲图像的代码。它具有白色背景。

 // This method refers to the signature image to save
private RenderedImage getImage() {

    int width = tabletWidth;
    int height = tabletHeight;

    // Create a buffered image in which to draw
    BufferedImage bufferedImage = new BufferedImage(width, height,
            BufferedImage.TYPE_INT_RGB);

    // Create a graphics contents on the buffered image
    Graphics2D g2d = bufferedImage.createGraphics();

    // Draw graphics
    g2d.setColor(Color.WHITE);
    g2d.fillRect(0, 0, width, height);

    drawPoints(Tablet.getPenPoints(), g2d, Color.BLACK);

    // Graphics context no longer needed so dispose it
    g2d.dispose();

    return bufferedImage;
}

我试图将其设置为透明,但没有成功,因此我发布了此工作部件。


问题答案:

使用BufferedImage.TYPE_INT_ARGB代替BufferedImage.TYPE_INT_RGB。并将其保存为PNG图像,JPEG不支持透明度。

UPD:

为使 背景 透明,请使用它:

g2d.setComposite(AlphaComposite.Clear);
g2d.fillRect(0, 0, w, h);

为了绘制您的图像:

g2d.setComposite(AlphaComposite.Src);
drawPoints(Tablet.getPenPoints(), g2d, Color.BLACK);


 类似资料:
  • 问题内容: 我正在使用以下代码在Windows和Linux中设置任务栏图标。它在Windows中效果很好,在Linux中效果很好。在Linux(Ubuntu)中,我将面板设置为(某种程度上)透明,并且当我添加GIF(具有透明背景)时,图标的背景显示为灰色和丑陋的所有颜色(参见图像,绿色菱形“!”)。 …有关如何制作GIF图片的任何想法,我要“保留”其透明背景? 替代文字http://unarm.o

  • 我正在尝试导出一个带有透明背景的matplotlib绘图,因为它是一个圆,我需要粘贴到另一个画布上(没有角)。 我遵循了这里的示例:如何使用透明背景从matplotlib导出绘图? 示例代码: 这里给出的示例是:如何使用Matplotlib设置图形背景颜色的不透明度 示例代码: 以及这里的例子:导出图在. png与透明背景 但这对我不起作用。当我粘贴到画布上时,我最终得到: 我需要它紧紧地围绕着油

  • 通过使用启用透明背景功能,可以使用自定义图片作为背景。 controller.setTransparentBackground( true );

  • 我想用透明背景保存一个图形,其中记号标记和轴标签是透明的,但子地块面是彩色的。我可以使用和来完成透明背景,后者可以通过为子地块内的每个轴设置来完成,但不能同时使两者工作。 我包括一个MWE,其中plt.show()将创建所需的facecolors,而保存的透明图显示在基调幻灯片上。谢谢你的帮助! 正确的彩色子图 幻灯片上透明

  • 问题内容: 我想以 编程方式 删除ImageButton中的灰色背景。我尝试了多种删除方法,例如- 但是在实现它们时,我在触摸时不会在ImageButton上产生涟漪效果。(触摸时不突出显示)。 有什么方法可以消除背景但保留波纹效果或高光。 问题答案: 如果这个方法比我认为的有效,那么应该可以解决您的问题: http://codingdict.com/questions/141119

  • out.mov的ffprompt-show_stream-show_format的输出如下: 我有一个“示例”片段,它显示了我想要的行为,带有以下流和信息: 我根本无法看出其中的差别。 输入、输出和工作模板可以在这里找到。 (点击链接时,您可能会看到的安全问题来自服务器证书是自签名的。您可以接受临时异常。顺便说一句:输出文件荒谬的文件大小将是下一个需要解决的问题。可能是与压缩有关的问题。)