当我尝试使用WhitespaceTrimmer插件修剪具有透明背景的图像时,我最终得到一个没有任何内容的3x3图像。
然而,当我将源图像保存在绘画中并且透明背景变成纯白色背景时,WhitespaceTrimmer效果很好。
我做错了什么会导致修剪器无法在原始图像上运行,或者这是某种错误或不支持的功能?
原始来源:
原始输出源(某处有3x3图像):
使用白色背景保存的原始图像(使用MS Paint):
白色背景图像的输出:
用于通过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),它可以正常工作。
所以答案是我有一个解决方法,但这是否按预期工作?
答案 0 :(得分:1)
WhitespaceTrimmer converts images to grayscale so that an energy filter can be applied。转换为灰度时,图像可能会变成黑色方块。要对此进行测试,请尝试将图像中的图形设置为不同的颜色(但仍然与透明背景相对)。
另一种可能性是图像中的透明像素具有相同的颜色,因此轮廓仅存在于alpha通道中 - 它不会与其他通道相乘。