我正在尝试通过将像素从其旧位置复制到新坐标来创建一个在Java上向现有图像添加边框的图像。到目前为止,这是我所做的:

 public static NewPic border(NewPic p, int borderWidth, Pixel borderColor) {
    int w = 2 * borderWidth;
    int h = 2 * borderWidth;


    Pixel[][] src = p.getBitmap();
    Pixel[][] tgt = new Pixel[w][h];

    for (int x = 0; x < w; x++) {
        for (int y = 0; y < h; y++) {
            if (x < borderWidth || x >= (w - borderWidth) ||
                    y < borderWidth)
                tgt[x][y] = borderColor;
            else
                tgt[x][y] = src[x - borderWidth][y - borderWidth];

        }
    }

return new NewPic(tgt);

}


不知道为什么这没有通过我的测试用例。有人可以为我提供任何指导吗?

谢谢!

最佳答案

w和h是否不应该是src的宽度和高度加上borderwidth的两倍?您正在创建的tgt足以容纳边框颜色。

希望能有所帮助。

09-03 19:32