Obtenir une image a partir d'une rotation d'une autre... [RESOLU] - Java - Programmation
Marsh Posté le 12-01-2004 à 16:04:45
Dephi a écrit : |
tu crée une BufferedImage avec les bonnes dimensions, tu récupère son Graphics2D, tu colle dedans l'image d'origine rotationnée, et voilà tu as ton image
Marsh Posté le 12-01-2004 à 16:18:55
predicator a écrit : |
Mais justement, comment j'obtiens cette image rotationée ???
(j'ai essayé d'utiliser un AfineTransform mais j'y arrive pas.. )
Marsh Posté le 12-01-2004 à 16:29:50
ben si c faire une roation de 90 tu recopie les lignes dans les colonnes et hop
Marsh Posté le 12-01-2004 à 16:32:00
chrisbk a écrit : ben si c faire une roation de 90 tu recopie les lignes dans les colonnes et hop |
bourrin
Marsh Posté le 12-01-2004 à 16:33:44
jveux pas dire mais http://java.sun.com/j2se/1.4.2/doc [...] te(double) ...
Marsh Posté le 12-01-2004 à 16:37:38
Moi j'ai la solution avec JAI
Si tu veux rester compatible avec un JDK inférieur à 1.4, je pense pas que tu puisses t'en passer. Après, je sais que dans le 1.4, Snu à intégré pas mal de classes de gestion des images. Peut être qu'on peut faire une rotation siplement avec le JDK. JAI c'est une librairie de gestion graphique, plutôt puissante.
Si ça t'interresse, je peut te filer le bout de code pour faire une rotation en utilisant JAI (ce qui implique que tu livre 1,5Mo de Jar en plus avec ton appli).
Marsh Posté le 12-01-2004 à 16:38:11
jar de 1.5mo pour faire une rotation de 90, je reve
faite le a la main ou utiliser le truc de --, mais arretez de rigoler quand meme !
Marsh Posté le 12-01-2004 à 16:41:04
chrisbk a écrit : jar de 1.5mo pour faire une rotation de 90, je reve |
d'autant que si c'est pour roter(*) un Graphics2D, jai servira à rien.
* mon père utilisait à une époque un logiciel de graphisme pour lequel il recevait des formations à domicile, dispensées par une flamande. et quand il s'agissait d'effectuer une rotation sur une image, elle employait le verbe "roter"
Marsh Posté le 12-01-2004 à 18:17:29
chrisbk a écrit : jar de 1.5mo pour faire une rotation de 90, je reve |
pkoi utiliser une trotinette pour se rendre à l'autre bout de la rue quand on pourrait utiliser une rolls ?
Marsh Posté le 13-01-2004 à 08:53:47
chrisbk a écrit : jar de 1.5mo pour faire une rotation de 90, je reve |
Ben, c'est bien pour ça que je le préviens...
Marsh Posté le 13-01-2004 à 09:31:24
benou a écrit : |
parce que le temps de démarrer la rolls, tu serais déjà arrivé au bout de la rue avec la trotinette
Marsh Posté le 13-01-2004 à 09:41:39
predicator a écrit : |
ouais mais la rolls c'est trop la frime quoi
Marsh Posté le 13-01-2004 à 11:20:37
predicator a écrit : |
Sauf que là on parle pas de rolls, mais de classes Java. Et en l'occurences, si les perfs de la rotation sont importantes, t'as plutôt intéret à utiliser JAI qui peut utiliser des routines C pour effectuer les opérations plus rapidement. A condition de livrer une version de JAI spécifique à l'OS sur lequel installer l'appli, et d'installer les librairies de manières à ce qu'elle soient accessibles à l'appli (spécifique à l'OS aussi). Si elle le sont pas, JAI passe en mode "pure Java".
Disons que JAI c'est une trotinette, avec un moteur de rolls !
Marsh Posté le 13-01-2004 à 11:23:36
el_gringo a écrit : |
1.5 Mo le jar, j'appelle pas ça une trotinette... Quid de l'utilisation dans une applet ? il faut se taper les 1.5 Mo en plus ?
Marsh Posté le 13-01-2004 à 11:35:45
predicator a écrit : |
oui
mais qui a dit qu'il faiait une applet ? (j'ai loupé un truc ?)
Marsh Posté le 13-01-2004 à 11:43:05
benou a écrit : |
non non je parle dans le cas général, c'est pas toujours la meilleure solution d'embarquer un jar de 1.5 Mo, même si c'est une Rolls
Marsh Posté le 13-01-2004 à 11:45:51
predicator a écrit : |
bha oui bien sûr, mais bno, c'est pas parce que dans le cas des applets c'est pas top que ca vaut pas le coup d'évoquer JAI ...
Marsh Posté le 13-01-2004 à 11:56:24
Arf, j'voulais pas animer le forum comme ca avec ma question...
Je cherchais seulement un moyen d'appliquer une rotation de 90° sur une image... (mais sans passer par Graphics2D et les AffineTransform car "intégration" difficile avec JGraph..)
J'ai finalement écrit le code (inversion pixels ligne/colonne), le voici si ca intéresse du monde...
Code :
|
Aucun souci niveau perf, C immédiat
Mercii
Marsh Posté le 13-01-2004 à 13:55:10
predicator a écrit : |
J'ai dit "trotinnette avec moteur de rolls", tu crois que c'est léger un moteur de rolls ?
Après, évidement, si t'es dans une applet, on va éviter. Mais dans à peu près tous les autres cas, on s'en tape de livrer 1,5M en plus...
Marsh Posté le 13-01-2004 à 13:57:32
juste pour info, dans le cas de JAI y a quand même le temps d'initialisation de plusieurs secondes à prendre en compte (juste à la première utilisation)
Marsh Posté le 13-01-2004 à 14:30:12
J'ai réecrit la méthode un peu plus proprement...
En tout cas, il était hors de question que je livre une lib supplémentaire de 1.5 Mo, la seul lib que je livre fait 147 ko (JGraph)
Marsh Posté le 13-01-2004 à 14:30:42
et je parlais d'applet, car moi j'en ai précisément besoin dans une applet
oui, on peut avoir besoin de telles choses dans une applet
Marsh Posté le 13-01-2004 à 15:50:10
predicator a écrit : et je parlais d'applet, car moi j'en ai précisément besoin dans une applet |
C'est pas spécialement étonnant!
Marsh Posté le 23-01-2004 à 17:32:47
Dephi a écrit : |
effectivement moi non plus ça marche pas
Voilà le code :
Code :
|
et voilà la Trace pour un angle de 90° :
Code :
|
Le truc, c'est que ça marche pas pour un angle de 90°, mais pour un angle de 45° ça marche
Code :
|
Les valeurs que Java calcule pour la taille de l'image rotationnée me paraissent vraiment très louches
Quelque soit l'angle utilisé, seule la hauteur de l'image est bonne, la largeur est complètement fausse...
Vous avez une idée sur ce point louche ?
Marsh Posté le 12-01-2004 à 15:48:32
Je cherche un moyen simple d'obtenir une image a partir d'une rotation (de 90° et seulement de 90°)...
Cela existe t-il en Java ??
Ou quelqu'un aurait il un morceau de code qui fait cela ?
(je trouve rien avec google..)
Attention, je ne veux pas modifier le Renderer de cette image (à travers Graphics2D) mais obtenir un nouvel objet Java Image...
Merciiiii
Message édité par Dephi le 13-01-2004 à 14:30:27
---------------