En dessinant un tas de tuiles sur un Canvas
, ces tuiles sont représentées par Image
s ou BufferedImage
s.images java avec canal alpha sans utiliser d'image tamponnée
J'ai remarqué que im obtenant tirages milliseconde avec Image
s mais ce que je commence à utiliser BufferedImage
s pour les tuiles la fuseau horaire du ciel fusées au-dessus de 20ms.
BufferedImage buffered = ImageIO.read(new File(fileName));
Image image = Toolkit.getDefaultToolkit().createImage(fileName);
Ces deux images prennent en charge les canaux alpha. Je voudrais commencer à utiliser alpha Image
pour les tampons intermédiaires. Cependant, je n'ai pas trouvé une place dans le jdk qui peut les générer en plus de cet appel Toolkit pour en créer un à partir d'un fichier.
Fondamentalement quelqu'un sait-il comment créer une image vide (pas BufferedImage) à partir de zéro qui peut supporter l'alpha?
BufferedImage est une Image. Image est une classe abstraite et les deux seules sous-classes dans la bibliothèque Java standard sont BufferedImage et VolatileImage (que vous ne voulez probablement pas utiliser). La vraie question est pourquoi le dessin se fait-il plus rapidement avec les images chargées à partir d'un Toolkit? Etes-vous en train d'écrire une applet? Si ce n'est pas le cas, envisagez d'utiliser un objet JComponent au lieu d'un objet Canvas. La bibliothèque AWT est généralement plus lente que sa contrepartie Swing. – Pace
Comment créez-vous vos images tamponnées? De quel type sont-ils? – basszero
@Pace: il existe d'autres sous-classes de 'java.awt.Image', c'est-à-dire' sun.awt.image.ToolkitImage' que vous obtenez lorsque vous utilisez les méthodes Toolkit pour créer une image et que ces images peignent beaucoup plus rapidement que BufferedImage objets pour une raison quelconque. – x4u