[Java] Redimensionner une image

Hello,
Je dois redimensionner une image (chargée dans un objet du type Image) pour qu’elle tienne dans un JPanel, mais sans qu’elle soit étirée, donc que les proportions soient gardées.

Je n’arrive pas à trouver comment faire. J’ai essayé avec getScaledInstance(…) mais elle étire l’image et je ne trouve pas comment faire…

Ah et tant qu’on est dans les questions, je dois aussi faire un outil de sélection par polygones. Pour le moment j’ai l’édition de polygone, facile. Mais comment savoir si l’utilisateur a cliqué à l’intérieur de la sélection où non? Il doit exister des algos pour ça mais…

ça doit être tout simple mais Google est pas mon ami ce soir

Ce message a été édité par Gimly le 19/06/2004

Ben le getScaledInstance() te renvoi une image aux dimensions que tu lui demandes. C’est normal qu’il étire pour remplir à la bonne dimension.
Par contre, il suffit que tu fasses le calcul avant pour garder les proportions de ton image.

Par contre, pour l’autre j’ai pas d’idées.

Bon je suis vraiment débile… en fait il suffit de mettre -1 dans la largeur ou la hauteur de la méthode getScaledInstance pour obtenir une version sans modification de l’échelle…

Sinon, pour le deuxième problème qqn a une idée? Pour le moment je dessine avec des lignes toutes simples mais j’aimerais bien faire un vrai outil de sélection comme Photoshop ou autres éditeurs graphiques.

Ce message a été édité par Gimly le 21/06/2004

Bon, en fait je vois deux solutions :
[ul]
[li]La bourrine, qui consiste à calculer le rectangle englobant ton polygone en récupérant tes valeurs limites (en haut à gauche et en bas à droite) et de tester si ton click est dedans (en faisant un listener sur ton rectangle…) [/li][li]La plus fine, est d’utiliser la classe Polygon qui possède toute les méthodes que tu veux pour calculer si ton click est à l’intérieur.[/li][/ul]

kaneloon a dit [ul]

[li]La plus fine, est d’utiliser la classe Polygon qui possède toute les méthodes que tu veux pour calculer si ton click est à l’intérieur.[/li][/ul][/quote]Toi je t’aime

Non sérieusement tu m’enlèves une belle chandelle du pied.

Ca marche vraiment nickel avec la classe Polygon /me is happy!

Bon, il reste que sur des images sombres le polygone n’est pas très visible… mais je vais essayer de trouver une solution pour ça, mais sinon ça marche vraiment nickel !
danke!

je UP le topic pour un probleme beaucoup plus simple mais qui ne touche en rien le java : est ce qu’on peut redimensionner une image avec l’UBB ??? (si oui, comment on fait ??)
siouplait !

c’est quoi UBB ?

[quote]Bon, il reste que sur des images sombres le polygone n’est pas très visible… mais je vais essayer de trouver une solution pour ça[/quote]Tu n’as qu’à faire comme dans beaucoup de programmes ayant cette fonction: Tu dessines ton polygone en noir et blanc et comme ça t’es sûr de le voir aussi bien sur du foncé que sur du clair.