我使用java ImageIO和TwelveMonkeys库来生成各种图像的方形缩略图。这非常有效,但在极少数情况下,缩略图图像以一种非常奇怪的方式被破坏,例如:
原:
已调整大小并已损坏:
更奇怪的是,这个错误看起来很短暂;使用相同的代码和环境重新生成缩略图工作正常。因此,我的主要问题是:
损坏图像的像素与原始图像的确切位置是什么?
损坏的图像与我所知道的任何图像操作都不匹配;原始的低频特征似乎已被映射到损坏的高频模式,但文本中的某些高频特征仍保留在损坏的图像中。
更新:这里是分解的RGB通道,这可能更有说服力:
所有三个通道几乎(但不完全)完全饱和,只有绿色通道保留空间细节。原版(盾牌左侧)的黑色斑块虽然在红色通道中反射但
注意的其他细节:
ResampleOp.FILTER_TRIANGLE
,它会调用AffineTransformOp。 The implementation似乎没有做任何非确定性的事情,但是再一次,imageIO似乎在堆外本机代码中做了很多魔术。