Comment faire fonctionner un BufferedImage avec cette image? (Java)


J'ai cette image: La Première Photo

Imaginez cela comme un monde de tuiles 4x4 dont les tuiles sont de 32x32 pixels chacune.

Alors jetez un oeil à l'image: un autre exemple de l'image:

Regardez la tuile en pierre, elle a des bords qui sont en dehors de la grille. Puis-je utiliser un bufferedImage pour cela ou dois-je faire autre chose pour que cela fonctionne?

Si oui, pourriez-vous m'aider en l'expliquant parce que je n'ai aucune idée de la façon de réaliser this is my game?

Un autre exemple image: un autre exemple de l'image:

Permettez-moi de l'expliquer Plus clairement... 1ère image = Grille, 2ème Image = Tuile Chevauchant la grille... (c'est ce que je veux avoir parce que c'est une nouvelle tuile que je peux utiliser pour rendre mon jeu meilleur!), Image 3d = Un exemple de la façon dont il serait tuile!

Author: Pim Schwippert, 2012-09-09

2 answers

Pour éliminer complètement l'artefact limite, vous pouvez utiliser Tuiles Penrose.

Vous pouvez atténuer l'artefact de bord en utilisant anti-aliasing. Cet exemple utilise TexturePaint avec trois variantes de nuances de chaque couleur: original, plus foncé et plus clair. Vous pouvez expérimenter avec un plus grand nombre de nuances pour de meilleurs résultats.

image

 2
Author: trashgod, 2017-05-23 12:21:17

Utilisez simplement PhotoShop pour modifier l'image à une taille de 32x32 pixels....ensuite l'utiliser dans votre jeu....

/////////////ÉDITÉ//////////////////

Comme indiqué ici, AffineTransformOp offre la flexibilité supplémentaire de choisir le type d'interpolation.

BufferedImage before = getBufferedImage(encoded);
int w = before.getWidth();
int h = before.getHeight();
BufferedImage after = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
AffineTransform at = new AffineTransform();
at.scale(2.0, 2.0);
AffineTransformOp scaleOp = 
   new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR);
after = scaleOp.filter(before, after);
 2
Author: Kumar Vivek Mitra, 2017-05-23 12:27:15