我想调整 Java BufferedImage 的大小,使其垂直变小,但不使用任何类型的平均,这样如果源图像中的像素行是“空白”(白色),则在目标图像的对应位置:“min”操作。默认算法(在getScaledInstance中指定)不允许我进行足够细粒度的控制。我想实现以下逻辑:
for each pixel row in the w-pixels wide destination image, d = pixel[w]
find the corresponding j pixel rows of the source image, s[][] = pixel[j][w]
write the new line of pixels, so that d[i] = min(s[j][i]) over all j, i
我一直在阅读RescaleOp,但还没有弄清楚如何实现这个功能——这无疑是一种奇怪的缩放类型。任何人都可以为我提供有关如何执行此操作的指示吗?在更糟糕的情况下,我想我可以保留目标 ImageBuffer 并按照伪代码复制像素,但我想知道是否有更好的方法。