1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
// La sous-image est transparente.
Image imageDeLaPiece = new BufferedImage(..., ..., BufferedImage.TYPE_INT_ARGB);
// son graphics est vide.
Graphics2D g2d = imageDeLaPiece.createGraphics();
try {
// Avec l'antialiasing on diminue les effets d'escalier.
g2d.setRenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
// La piece est peinte en noire. Le reste du graphics reste transparent.
// certains pixels sur les bords de la forme seront partiellements transparents.
g2d.setPaint(Color.BLACK);
g2d.fill(formeDeLaPiece);
// Tous les pixels noir dont l'alpha n'est pas 0 contiendont des parties de l'images.
g2d.setComposite(AlphaComposite.SrcIn);
g2d.drawImage(image, ..., ..., null);
}
finally {
g2d.dispose();
} |
Partager