Affichage des articles dont le libellé est java jai api. Afficher tous les articles
Affichage des articles dont le libellé est java jai api. Afficher tous les articles

lundi 24 mai 2010

Installer SQL Server et tester les types java jdbc


Objectif

Installer SQL Server express 2005 et copier le schéma Scott d’Oracle

Introduction

Utiliser une vraie base de données chez Microsoft, c’est possible : SQL Server ( ex Sybase pour ceux qui connaissent l’histoire (http://en.wikipedia.org/wiki/Microsoft_SQL_Server de codename yukon ;) pour la version 2005 donc ).
Autant essayer cette dernière avec le driver jdbc fourni par Microsoft ( il y en a autre chez sourceforge (http://jtds.sourceforge.net/ )

Installer « sql server express 2005 »

Pour ce faire, aller sur le site de Microsoft, télécharger la base de données et toutes les dépendances nécessaires ( i.e. mdac ). Je conseille fortement l’installation de SSMSEE « sql server management studio express edition » pour gérer la base de données installée, l’utilisation de la base de données « adventureWorks » étant pour le moins hasardeuse sans configuration.
Pour jdbc, il faut télécharger « sqljdbc_1.2.2828.100_fra.exe » qui est en fait un zip à décompresser. Récupérer le jar ( sqljdbc.jar ) et placer le fichier « sqljdbc_auth.dll » dans le répertoire [win]/system32 … Un peu de configuration sur les connexions réseau et redémarrez, cela pourrait fonctionner correctement.

Lister les types de données compatibles java

Lister les types de données pour les bases installées permet de voir plusieurs choses :

  • Il existe un type de données sql_variant qui rappelle fortement le type variant utilisé avec VB.
  • Parmi les types dates, SQL Serveur ne reconnaît que le type « timestamp », pas les types « date » et « time » ( voir plus loin pour les problèmes liés )
  • Le type long binaire s’appelle « image »


Essayer de copier le schéma Scott

Pour ce faire, l’outil que j’ai développé va très bien ( en théorie ),
Choisir la base en entrée, celle en sortie ( l’outil affiche les tables liées, on peut facilement supprimer des tables existantes ) et cliquer sur « copier »
Trois tables sont copiées ( « account », « bonus » et « dept » ), l’outil stoppe sur le problème de conversion du format « date » de la colonne « hiredate » de la table « emp ».

Résolution du problème

Pour résoudre le problème, il faut forcer une conversion du type 91 oracle « date » dans le type 93 Sql Server « timestamp », ce qui avait déjà été fait pour la gestion des types numériques dans les bases Dbase ( type 8 = java Double )

Pour approfondir les sujets





jeudi 22 avril 2010

version bêta de l'application de traitement des fichiers images

Vous avais-je déjà parlé d’une application java permettant de travailler des images en noir et blanc pour les coloriser ( avec de nombreuses fonctionnalités ).

Elle est quasiment finie, autant en faire un billet.

Copie d’écran

 

 

 

 

 

 

 

 

 

Fonctionnalités

  • recharger une image
  • sauver
  • sauver sous
  • supprimer
  • charger un répertoire
  • quitter l’application
  • réduire le nombre de couleurs
  • zoom in
  • zoom out
  • nettoyer ( effacer les points parasites )
  • rotation +90°
  • rotation -90°
  • fill couleur ( borné par autre couleur )
  • remplacer une couleur
  • prélever une couleur
  • couper
  • définir un rectangle
  • bookmarquer
  • dé-bookmarquer
  • statistiques des couleurs de l’images
  • mesurer les dimensions
  • plein écran
  • dans le navigateur
  • trouver un code couleur

fichiers de ressources ( property file )

  • un fichier pour gérer les paramètres de l’application
  • un fichier pour gérer les éléments du menu
  • un fichier pour chaque fournisseur de couleur à afficher dans une jtable

Et concernant les images traitées ?

  • elles sont stockées dans un BufferedImage
  • plutôt que d’utiliser les fonctions java de transformations affines, les rotations sont traitées directement par permutations dans un repère (x,y)
  • la fonction fill est assez rapide, moins de 3 secondes pour traiter une grande zoe ) borner ( 1 seconde pour substituer tous les points d’une image ( 1000 * 1000 pixels )
  • la fonction ‘sauver sous’ sauve les images au format png ( RVB sans alpha )

Et concernant les couleurs utilisées ?

  • voir les billets précédents
  • chaque ligne est de la forme code_couleur.rgb=0x??????
  • un comparator est utilisé avec les jtable pour gérer les données stockées dans des listes triées. Il faut que ‘h12’ s’affiche avant ‘h101’ etc.
  • les jtable statistiques et (un)bookmark sont mise à jour directement à partir des click de souris sur l’image

Autres informations

  • pas mal de design patterns utilisés, pas mal de découplage des différents composants avec un pattern Observer amélioré
  • pas mal de classes génériques paramétrées utilisées
  • création d’un générateur automatique de remplissage d’un Jmenu et d’un JtoolBar ( voir copie d’écran )
  • la fonction undo a été retirée, le stockage des images étant très volumineux, une petite centaine d’actions ( avec sauvegarde des images ) sature la mémoire sur mon PC. Les 10 dernières actions auraient pu être gérée
  • un splash screen pour afficher les informations durant le chargement de l’application

Fonctionnalités à rajouter ?

  • éclaircir / foncer des couleurs
  • améliorer les contrastes ( il y a des algorithmes sympas ;) )
  • appliquer des filtres
  • en bref, réinventer ce que font photoshop, the Gimp et autres logiciels de traitement d’images
Dans l’intervalle, les fonctions existantes sont bien suffisantes dans la plupart des cas.

vendredi 22 janvier 2010

ant : créer des vignettes


Description


Ant permet de copier des fichiers de façon à les redimensionner, ce qui est adéquat pour faire des vignettes.
Voici comment créer des vignettes pour certains types de fichiers.


Exemple


Pour créer des vignettes d'une taille maximum de 160 en largeur pour des jpeg depuis le répertoire relatif ./in/images vers le répertoire relatif ./out/_img.

Pour tester, taper la ligne suivante en ligne de commande :
ant -f imagettes.xml
à supposer que le fichier d'exemple ci-après se nomme imagettes.xml.

Installation supplémentaire : la tâche image nécessite l'installation de fichiers jar trouvable ici et à placer par exemple dans le répertoire lib de votre installation ant.

<?xml version="1.0" encoding="ISO-8859-1"?>

<project name="makeThumbs" default="makeThumbs" basedir=".">

<description> truc </description>

<property name="img.rep.in" value="./in/images"/>
<property name="img.rep.out" value="./out/_img" />

<target name="makeThumbs">
<image destdir="${img.rep.out}" overwrite="yes">
<fileset dir="${img.rep.in}">
<include name="**/*.jpeg" />
</fileset>
<scale width="160" proportions="cover"/>
</image>
</target>

</project>


Plus d'informations sur


  • la tâche image ici.
  • les jars supplémentaires à installer ici et ici.
  • les critères fichiers ici.
  • les "types de ressources" fichiers ici.
  • Ant ici.