2009-04-19 10 views
0

J'essaie de créer une superposition avec un fond semblable à Vista Aero Glass à la place d'une fenêtre normale. Une partie de ma réponse semble être here, mais je me demande comment obtenir un effet de flou dans Swing/AWT. This ressemble à un début:Effet de bordure de verre Vista dans Java Swing/AWT

public BufferedImage processImage(BufferedImage image) { 
    float[] blurMatrix = { 1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f, 1.0f/ 
      9.0f, 1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f }; 
    BufferedImageOp blurFilter = new ConvolveOp(new Kernel(3, 3, blurMatrix), 
      ConvolveOp.EDGE_NO_OP, null); 
    return blurFilter.filter(image, null); 
} 

... mais je voudrais vraiment obtenir un match serré. Il semble que le processus devrait être:

  1. Blur l'image de fond
  2. peinture sur un gris transparent (ou autre couleur bg que vous allez pour)
  3. Peignez ensuite le contenu des fenêtres opaques

Si je comprends bien, je pourrais lancer les ombres de la fenêtre Aero.

Suis-je sur la bonne voie? Comment précisément dois-je faire le flou pour obtenir le même look? Peut-être que quelqu'un a déjà résolu ce problème? (Pour référence, ouvrez le menu de démarrage Vista et regardez sur le côté droit.)

Répondre

1

Je n'ai pas de solution à portée de main, mais vous pouvez certainement superposer une couleur dans l'étape de flou. Tout ce que vous aurez besoin de savoir sur les effets Swing et les effets d'image Swing est dans l'excellent Filthy Rich Clients. La réponse à votre question est définitivement là.

En fait, si vous regardez dans la section des exemples et téléchargez le code du chapitre 8 à partir de ce site, il y a du code pour faire le flou et la teinte dont vous avez besoin.

Merci, jT