Ajout d'une bordure à une image en Java
Je suis en train de créer une image qui ajoute une bordure à une image existante sur l'île de Java en copiant les pixels à partir de leurs emplacements anciennes vers les nouvelles coordonnées. Jusqu'à présent, c'est ce que j'ai fait:
public static NewPic border (NewPic p, int borderWidth, Pixel borderColor) {
int w = p.getWidth();
int h = p.getHeight();
Pixel src[][] = p.getBitmap();
Pixel tgt[][] = new Pixel[h][w];
for (int x = 0; x < w; x++) {
for (int y = 0; y < h; y++) {
tgt[y][x + y + borderWidth] = src[x][y]; //this is probably where I a messing up
}
}
return new NewPic(tgt);
}
Pas sûr de ce que je fais de mal dans la ligne où ai-je commenté. Je suis nouveau sur Java. Quelqu'un peut-il me donner quelques conseils?
- Wow, c'est beaucoup de travail pour peu de gain. Qu'est-ce que
NewPic
Vous n'êtes pas fournir tout l'espace supplémentaire pour les pixels à l'intérieur de la frontière (la cible est la même taille que la src)
Vous devez vous connecter pour publier un commentaire.
Une façon est d'utiliser une Balançoire en fonction de la frontière.
Vous pouvez créer un
BorderedBufferedImage
qui accepte unint
pourborderThickness
, une Couleur pour laborderColor
, et unBufferedImage
.Ce site internet peut aussi offrir de l'aide:
J'ai utilisé la logique suivante pour ajouter une bordure à une image:
Cela permettra de dessiner une image sur un rectangle jaune dont la taille est supérieure à l'image, offrant ainsi une frontière à l'image.
Je sais que cette discussion est de 2013, mais je suis tombé sur cela, et j'ai une solution qui préserve ce que l'OP a été d'essayer de faire:
Propre Java façon la plus simple: