2013-03-12 4 views
0

Я пытаюсь создать изображение, которое добавляет границу существующего изображения на Java, копируя пиксели от их старых местоположений до новых координат. До сих пор это то, что я сделал:Добавление пиксельной границы к изображению в 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);  

} 

Не знаете, почему это не проходит мой тестовый пример. Может ли кто-нибудь предоставить мне какие-либо указания?

Спасибо!

+0

Так что же случилось с предыдущим ответом на этот вопрос? Что такое 'NewPic' и' Pixel'? Это не стандартные классы Java? Откуда они пришли? – MadProgrammer

ответ

2

Не следует ли w и h быть шириной и высотой src plus в два раза больше границы? Вы создаете tgt достаточно большим, чтобы удерживать цвет границы.

Надеюсь, что это поможет.

+0

+1 - но это действительно должно быть комментарий – MadProgrammer

0

Вы можете использовать Graphics и нарисовать линии.

Смежные вопросы