透明png是否存在使用WhitespaceTrimmer插件的问题

时间:2014-11-05 16:33:37

标签: imageresizer

当我尝试使用WhitespaceTrimmer插件修剪具有透明背景的图像时,我最终得到一个没有任何内容的3x3图像。

然而,当我将源图像保存在绘画中并且透明背景变成纯白色背景时,WhitespaceTrimmer效果很好。

我做错了什么会导致修剪器无法在原始图像上运行,或者这是某种错误或不支持的功能?

原始来源:

Original Source

原始输出源(某处有3x3图像):

Output Of Original Source

使用白色背景保存的原始图像(使用MS Paint):

Source Saved With White Background

白色背景图像的输出:

Output Of White Background Image

用于通过asp.net输出图像的测试代码

    Response.Clear()

    Response.AppendHeader("Content-Disposition", "attachment; filename=testSigOutput.png")
    Response.ContentType = diFunctions.getContentType("png")

    ImageBuilder.Current.Build("C:\Solutions\TestImages\testSig.png", Response.OutputStream, New ResizeSettings("trim.threshold=80&trim.percentpadding=0.5"))
    Response.End()

编辑:我做了一些额外的测试,我得出的结论是,当它将图像转换为灰度时,它将透明像素视为黑色。

无论我设置什么颜色,透明背景像素都不起作用。

但是,如果我更改笔颜色或使背景略微可见(0.01 alpha),它可以正常工作。

所以答案是我有一个解决方法,但这是否按预期工作?

1 个答案:

答案 0 :(得分:1)

WhitespaceTrimmer converts images to grayscale so that an energy filter can be applied。转换为灰度时,图像可能会变成黑色方块。要对此进行测试,请尝试将图像中的图形设置为不同的颜色(但仍然与透明背景相对)。

另一种可能性是图像中的透明像素具有相同的颜色,因此轮廓仅存在于alpha通道中 - 它不会与其他通道相乘。