Filtres pour les images
Les filtres pour images peuvent être lancés pour améliorer la qualité ou modifier des images pendant la génération de l'album, on peut ajouter sur l'image des textes transparents (watermark) ou des logos ..ect.
Les filtres pour les images peuvent être appliqués aux images, aux vignettes ou aux deux. Plusieurs filtres peuvent être enchaînés pour produire l'effet désiré. Imaginons que vous appliquiez d'abord un filtre anti yeux rouge, puis un filtre netteté et enfin que vous ajoutiez votre logo dans un coin de l'image. Bien, pour le moment tous ces filtres ne sont pas écrits, mais j'espère qu'ils arriveront bientôt. Pour le moment, il n'y a pas d'interface graphique pour utiliser les filtres d'images, mais avec quelques simples réglages dans les "variables définies par l'utilisateur" de l'onglet "Avancées", Il est possible de contrôler ces filtres.
Exemple rapide
Comme apprendre par l'exemple" est le meilleur moyen, on va débuter en appliquant un filtre gris à toutes les vignettes et ajouter un logo dans chaque images. (Pour une description sommaire des filtres disponibles, voir plus bas.)
Démarrez JAlbum et préparez un projet pour la création d'un album. Puis allez dans l'onglet "Avancée" de JAlbum. Vous y trouverez une section appelée "Variables de l'utilisateur". Nous allons utiliser cette section pour paramétrer les réglages de nos filtres. Taper exactement comme dans l'exemple. Faites attention au Majuscules , ("GrayscaleFilter" est différent de Grayscalefilter"). Lorsque vous avez terminé, cliquez sue ENTER pour sauver vos nouveaux réglages.
Réglages des paramètres dans l'onglet "Avancée"
Retournez maintenant dans l'onglet "Principal" et cliquez sur "Recréer tout" afin que les filtres soient appliqués. (Il est nécessaire d'utiliser "Recréer tout" car utiliser "Créer l'album" ne met pas à jour les images existantes.) Le résultat devrait ressembler à ceci:
L'image et la vignette après application des filtres.
Les filtres sont appliqués dans l'ordre de leur numéro (filter1, filter2 etc). Les réglages des filtres sont sauvés avec le fichier "projet" de l'album, n'oubliez donc pas de sauver votre projet lorsque vous êtes satisfait du résultat.
Les filtres
Vous trouverez ci-dessous la liste des filtres inclus avec JAlbum ainsi que leurs caractéristiques. (propriétés). De nouveaux filtres peuvent être installés en mettant leurs fichiers "Java class" dans le dossier "plugins" de JAlbum. Il est nécessaire que tous les filtres aient un identifiant afin d'être reconnus. Tous les filtres acceptent les paramètres qui contrôlent si le filtre est appliqué aux vignettes, aux images ou aux deux à la fois. Par défaut, les filtres s'appliquent aux deux à la fois.
Filtre gris

Convertir les images en niveaux de gris.
| Property |
Values |
Comment |
| class |
GrayscaleFilter |
Identifiant (nom) du filtre (nécessaire) |
| thumbnails |
true|false |
Appliquer aux vignettes? |
| closeups |
true|false |
Appliquer aux images? |
Exemple: class=GrayscaleFilter
Applique le filtre gris aux images et vignettes.
Tint filter (Teinte)

Adjusts the color of an image.
| Property | Values | Comment |
class | TintFilter | Identifiant du filtre (nécessaire) |
| thumbnails |
true|false |
Appliquer aux vignettes? |
| closeups |
true|false |
Appliquer aux images? |
| prescale | true|false | Appliquer le filtre avant redimesionnement ? |
| redPercent | Intensité en % | Red tone (100 par défaut) |
| greenPercent | Intensité en % | Green tone (100 par défaut) |
| bluePercent | Intensité en % | Blue tone (100 par défaut) |
Exemple: class=TintFilter redPercent=100 greenPercent=60 bluePercent=60
Applique une coloration rouge sur les images
Vous pouvez obtenir des effets interessants en combinant le filtre Gris avec le filtre Teinte.
Logotype filter

Ajoute un logo en haut de chaques images.
| Property |
Values |
Commentaire |
| class |
LogoFilter |
Identifiant du filtre (nécessaire) |
| thumbnails |
true|false |
Appliquer aux vignettes? |
| closeups |
true|false |
Appliquer aux images? |
| src |
URL to jpeg or gif image |
n'importe quelle URL valide |
| align |
left|center|right |
Alignement horizontal du logo (left) |
| valign |
top|center|bottom |
Alignement vertical du logo. (top) |
| margin |
Margin in pixels |
Distance du logo à partir du bord de l'image. (0) |
| offset |
Horizontal offset in pixels |
Réglage fin horizontal en pixels. (0) |
| voffset |
Vertical offset in pixels |
Réglage fin vertical en pixels. (0) |
Exemple: class=LogoFilter src="http://www.datadosen.se/jalbum/images/bigicon.gif" closeups align=right
Ajoute le logo de JAlbum à partir de l'URL (adresse web) du site web de JAlbum, dans le coin droit de l'image.
Filtre Texte

Ajoute des testes aux images de l'album.
| Propriété |
Valeurs |
Commentaire |
| class |
TextFilter |
Identifiant du filtre (nécessaire) |
| thumbnails |
true|false |
Appliquer aux vignettes? |
| closeups |
true|false |
Appliquer aux images? |
| text |
Text to display |
Permet d'utiliser des JAlbum $variables comme $originalDate et $comment pour incérer des commentaires variables en fonction des images |
| color |
HTML color definition |
Comprend les noms de couleurs standards comme "pink", "red"... et les formats #rrggbb et r,g,b,a |
| face |
Name of font |
nom valide de police comme "Helvetica", "Verdana", "Courier New" etc |
| style |
plain|bold|italic|bolditalic |
Style de la police (bold) |
| size |
Taille de la police en pixels |
(16) |
| antialias |
true|false |
Antialiasing permet des bords plus doux. (true) |
| align |
left|center|right |
Alignement horizontal du texte (left) |
| valign |
top|center|bottom |
Alignement du texte. (top) |
| margin |
Margin in pixels |
Distance du texte par rapport au bord de l'image. (5) |
| offset |
Horizontal offset in pixels |
Règlage fin horizontal en pixels. (0) |
| voffset |
Vertical offset in pixels |
Réglage fin vertical en pixels. (0) |
Exemple: class=TextFilter text="Date: $fileDate" size=20 color=#aaffaa closeups
Ajoute la date d'un fichier image en haut en couleur vert claire.
Filtre texte Ombré

Comme le filtre texte mais avec les ombres en plus.
Propriétés étendues (voir filtre texte pour les autres):
| Propriété |
Valeurs |
Commentaire |
| class |
ShadowTextFilter |
Identifiant du filtre (nécessaire) |
| shadowColor |
HTML color definition |
Coleur de l'ombre. Comprend les noms de couleurs standards comme "pink", "red"... et les formats #rrggbb et r,g,b,a |
| shadowDistance |
Distance en pixels |
(2) |
Exemple: class=ShadowTextFilter text="Date: $fileDate" size=20 color=#aaffaa closeups
Ajoute la date d'un fichier image en haut en couleur vert claire avec une ombre noire
Filtre Watermark (effet transparant)

Comme le filtre texte mais avec un effet "watermark".
Propriétés étendues (voir filtre texte pour les autres):
| Propriété |
Valeurs |
Commentaire |
| class |
WatermarkFilter |
Identifiant du filtre (nécessaire) |
| strengthPercent |
Strength in percent |
Controle la visibilité du watermark. (20) |
Exemple: class=WatermarkFilter text="JAlbum" size=30 closeups valign=bottom margin=0
Ajoute le texte "JAlbum" watermark près du bord inférieur
Zoom filter

Zooms sur les images. Utile pour rendre les vignettes plus lisibles.
| Propriété |
Valeurs |
Commentaire |
| class |
ZoomFilter |
Identifiant du filtre (nécessaire) |
| zoomPercent |
facteur du zoom sur le centre de l'image |
(30) |
| thumbnails |
true|false |
Appliquer aux vignettes ? |
| closeups |
true|false |
Appliquer aux images ? |
| prescale |
true|false |
Appliquer le filtre avant de redimensionner? vivement recommandé |
Example: class=ZoomFilter prescale thumbnails zoomPercent=30
Applique le filtre zoom aux vignettes. Notez l'attibut "prescale" (important pour les vignettes)
Fixed shape filter

Coupe les images de façon à correspondre exactement aux valeurs fixées dans l'interface pour "Taille des vignettes" ou "taille des images". Il en résulte que toutes les vignettes/ou images ont la même taille.(portrait, paysage etc).
Nota: Lorsque ce filtre est intégré à un skin, le skin ne devrait plus utiliser $thumbWidth
et $thumbHeight, car ces variables incorectes dans ce cas (les pages html pages sont générées avant le traitement des images, dans ce cas avant qu'elles ne soient coupées). Utilisez $maxThumbWidth et $maxThumbHeight à la place. Vous pouvez examiner le skin "Lone tree" pour voir un exemple d'utilisation de ce filtre.
| Propriété |
Valeurs |
Commentaire |
| class |
FixedShapeFilter |
Identifiant du filtre (nécessaire) |
| thumbnails |
true|false |
Appliquer aux vignettes ? |
| closeups |
true|false |
Appliquer aux images ? |
| prescale |
true|false |
Appliquer le filtre avant de redimensionner ? vivement recommandé |
Example: class=FixedShapeFilter prescale thumbnails
Applique le filtre fixed shape filter aux vignettes. Notez l'attibut "prescale" (important pour les vignettes)
Sharpen filter

Accentuer les images.
| Propriété |
Valeurs |
Commentaire |
| class |
SharpenFilter |
Identifiant du filtre (nécessaire) |
| thumbnails |
true|false |
Appliquer aux vignettes ? |
| closeups |
true|false |
Appliquer aux images ? |
| prescale |
true|false |
Appliquer le filtre avant de redimensionner ? |
Example: class=SharpenFilter closeups
Applique une accentuation de la netteté aux images.
Blur filter

flou aux images.
| Propriété |
Valeurs |
Commentaire |
| class |
BlurFilter |
Identifiant du filtre (nécessaire) |
| thumbnails |
true|false |
Appliquer aux vignettes ? |
| closeups |
true|false |
Appliquer aux images ? |
| prescale |
true|false |
Appliquer le filtre avant de redimensionner ? |
Example: class=BlurFilter closeups
Applique un flou aux images.
Rotation filter

Rotation des images suivant la valeur indiquée en degré ou de façon aléatoire (par image)
Nota: La taille des images ayant subies une rotation n'est pas la même que celle de l'image originale, ne spécifiez donc pas de taille fixe basée sur image widths et heights , par exemple $imageWidth dans un tag <img> dans une page Modèle (htt).
| Propriété |
Valeurs |
Commentaire |
| class |
RotationFilter |
Identifiant du filtre (nécessaire) |
| thumbnails |
true|false |
Appliquer aux vignettes ? |
| closeups |
true|false |
Appliquer aux images ? |
| prescale |
true|false |
Appliquer le filtre avant de redimensionner ?(recommandé pour des bords plus doux) |
| angle |
Angle en degrees |
Angle de rotation des images (ou limite pour la rotation aléatoire, si celle-ci est sélectionnée) (15 par défaut) |
| random |
true|false |
Pour appliquer une rotation aléatoire à chaque image (maximum est défini par la valeur de l'angle ci-dessus.) |
Example: class=RotationFilter angle=10 random thumbnails prescale
Rotation aléatoire des vignettes de -10 à 10 degrés.
eXtended Border filter
Ajoute des bordures cadres et ombres de votre choix aux images de vos albums.
la dernière version du filtre peut être téléchargée depuis le forum. Il est également possible de télécharger une documentation plus complète pour ce filtre
| Propriété |
Valeurs |
Commentaire |
| class |
XBorderFilter |
Identifiant du filtre (nécessaire) |
| thumbnails |
true|false |
Appliquer aux vignettes ? |
| closeups |
true|false |
Appliquer aux images ? |
| prescale |
true|false |
Appliquer le filtre avant de redimensionner ? |
| bgCol |
HTML color definition |
Couleur du fond pour les parties transparentes des ombres et cadres |
| bgFile |
URL vers jpeg, png or gif image |
Emplacement du fichier graphique à utiliser pour les fonds des parties transparentes des ombres et cadres |
| bgOffX |
x offset en pixels |
x Offset pour le bgFile (nouveauté de la version V0.95 β) |
| bgOffY |
y offset en pixels |
y Offset pour le bgFile (nouveauté de la version V0.95 β) |
| boBlend |
true|false |
Fondu des bandes de couleur "on" ou "off" ? |
| boClip |
border clip rayon en pixels |
Angle arrondi pour les bordures |
| boCol |
(list of) HTML color definition(s) |
accepte les noms de couleurs standards de Netscape et Explorer comme "pink", #rrggbb |
| boMargin |
marge des bordures en pixels |
marge entre les bordures et les bords de l'image |
| boTrans |
(liste des) transparences des cadres |
0 = opaque, 100 = complètement transparent (invisible) |
| boWidth |
largeur des bordures en pixels |
Les 4 cotés ont la même valeur |
| boWidthE |
bordure "Est" en pixels |
seulement E |
| boWidthN |
bordure "Nord" en pixels |
seulement N |
| boWidthS |
bordure "Sud" en pixels |
seulement S |
| boWidthW |
bordure "Ouest" (Western border) en pixels |
seulement W |
| brCol |
couleur des crochets (parenthèses) |
(new with V0.96) |
| brStyle |
Style des crochets |
(new with V0.96) |
| brThick |
épaisseur des traits des crochets |
(new with V0.96) |
| brX |
Longueur des branches horizontales des crochets |
(new with V0.96) |
| brY |
Longueur des branches verticales des crochets |
(new with V0.96) |
| clip |
rayon de l'arrondi en pixels |
rayon de l'angle arrondi |
| debug |
enables debug output |
for developers only |
| frBlend |
true|false |
Fondu des bandes de couleur "on" ou "off" ? |
| frCol |
(list of) HTML color definition(s) |
accepte les noms de couleurs standards de Netscape et Explorer comme "pink", #rrggbb |
| frTrans |
(liste des) transparences des cadres |
0 = opaque, 100 = complètement transparent (invisible) |
| frWidth |
largeur du cadre en pixels |
Les 4 cotés ont la même valeur |
| frWidthE |
cadre "Est" en pixels |
seulement E |
| frWidthN |
cadre "Nord" en pixels |
seulement N |
| frWidthS |
cadre "Sud" en pixels |
seulement S |
| frWidthW |
cadre "Ouest" (Western border) en pixels |
seulement W |
| shCol |
(list of) HTML color definition(s) |
accepte les noms de couleurs standards de Netscape et Explorer comme "pink", #rrggbb |
| shDir |
NE|SE|NW|SW |
direction de l'ombre |
| shDrop |
hard|norm|soft |
dégradé de l'ombre |
| shTrans |
minimum shadow transparency |
transparence minimum de l'ombre près du bord de l'image |
| shWidth |
largeur de l'ombre en pixels |
les 2 directions ont la même valeur |
| shWidthX |
largeur de l'ombre suivant x en pixels |
seulement x |
| shWidthY |
largeur de l'ombre suivant y en pixels |
seulement y |
| shExX |
excédant d'ombre suivant x en pixels |
largeur de l'excédant d'ombre du coté opposé |
| shExY |
excédant d'ombre suivant y en pixels |
largeur de l'excédant d'ombre du coté opposé |
Exemple: class=XBorderFilter frWidth=20 frCol=ivory shWidth=15 closeups
Ajoute un cadre et une ombre sur les images.
Autre exemple: class=XBorderFilter boWidth=20 boCol=ivory closeups
Ajoute une bordure sur les images.
Ajouter des filtres dans les skins
Les skins peuvent être configurés pour utiliser certains réglages de filtres automatiquement. Sauvez simplement un "projet" contenant les réglages adoptés dans la section "variables de l'utilisateur", puis renommer le projet en hints.jap et déplacez le dans le dossier du skin. JAlbum chargera ces réglages lorsque ce skin sera sélectionné. Pensez à enlever "les hints" (conseils) pour les cas où vous ne souhaitez pas utiliser ses paramètres.
Developper des filtres
Cette section est destinée aux programmeurs en Java qui souhaitent étendre les possibilités de JAlbum avec de nouveaux filtres.
Les filtres pour images de JAlbum sont des classes java ajoutées dans le dossier plugins qui implémentent la petite interface se.datadosen.jalbum.JAFilter interface. Un filtre JAlbum devra respecter les spécifications de JavaBean, c'est à dire:
- Fournir un no-args constructor
- Getters and setter methods devra respecter les conventions de noms de JavaBean.
- Le filtre devra être serializable
La section suivante n'est pas traduite, j'ai peur d'en faire quelque chose d'incompréhensible pour les programmeurs..:-)
A se.datadosen.jalbum.JAFilter interface must provide getter methods for name and description pretty much like an Applet. The third method is the filter method that takes a BufferedImage and a java.util.Map as arguments and returns a modified BufferedImage. A filter is allowed to directly manipulate the passed BufferedImage. The Map object contains JAlbum $variables that may be useful for the filter implementer.
The preferred way to pass parameters to a filter is to implement setter methods for them. By using a smart BeanShell script in the init.hsh file in the JAlbum program directory, JAlbum is capable of passing attributes from the user defined variables section of the Advanced tab page to the corresponding setter method of a filter.
The plugins JAlbum directory contains not only the filter classes but also the source code for the filters described on this page. Feel free to use them as base for your own filters. You will probably find the SimpleFilter below a good base for your own filters. The plugins folder also contains a compile.bat file that simplifies compilation for you. As you develop filters, please note that you do not need to restart JAlbum in order to refresh the filter classes as they are dynamically loaded every time an album is being processed. Finally, if you make a cool filter, please send it to me for inclusion.
Exemple de code source pour un filtre
Le simple filtre suivant ajoute le logo de JAlbum dans un coin des images:
import se.datadosen.jalbum.JAFilter;
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
/**
* JAlbum simple image filter adding a JAlbum logo to the
* corner of images
* @author David Ekholm
* @version 1.0
*/
public class SimpleFilter implements JAFilter {
// Implements JAFilter
public String getName() {
return "Simple filter";
}
// Implements JAFilter
public String getDescription() {
return "Add a JAlbum logo to the corner of images";
}
// Implements JAFilter
public BufferedImage filter(BufferedImage bi, java.util.Map vars) {
Graphics2D g = bi.createGraphics();
ImageIcon windowIcon =
new ImageIcon(se.datadosen.jalbum.JAlbumFrame.class.getResource(
"smallicon.gif"));
g.drawImage(windowIcon.getImage(), 0, 0, null);
return bi;
}
}
|