Zoom avant et arrière d'images en Java
Je pense que la question est auto-explicatif. Je veux mettre en œuvre une simple fonction de zoom à l'aide d'un JSlider
comme dans la Galerie de Photos Windows Live, par exemple.
J'ai eu un coup d'oeil rapide en ligne, mais tout le code que j'ai essayé d'utiliser semble avoir des erreurs lorsque je l'ai copier dans Eclipse. Je n'ai pas vraiment envie d'utiliser une bibliothèque tierce, soit parce que l'application peut être vendu sous un nom de société. De Plus, je commence à réaliser qu'il peut y avoir quelques précautions de sécurité nécessaires afin d'éviter les erreurs, mais je ne sais pas ce qu'ils seront.
Donc, si quelqu'un peut me fournir quelques de code Java pour faire un zoom de l'image, il serait grandement apprécié.
P. S. j'ai l'intention d'utiliser l'Image comme un ImageIcon
à l'intérieur d'un JLabel
qui seront ajoutés à une JScrollPane
.
OriginalL'auteur Andy | 2012-02-18
Vous devez vous connecter pour publier un commentaire.
Vous pouvez facilement obtenir à l'aide de l'échelle transformations sur l'image d'origine.
En supposant que votre la largeur de l'image courante
newImageWidth
, et la hauteur de l'image actuellenewImageHeight
, et le niveau de zoom actuelzoomLevel
, vous pouvez effectuer les opérations suivantes:Maintenant, remplacer l'image d'origine,
originalImage
, dans votre zone d'affichage parresizedImage
.Ah attendez, cette méthode semble avoir une incidence sur la transparence de l'image (le transparent bits sont des noirs), avez-vous une idée de pourquoi et comment résoudre le problème?
Il semble que l'utilisation de AffineTransform se doivent de préserver la transparence de l'image... check this out stackoverflow.com/a/2176977/782719
OriginalL'auteur GETah
Vous pouvez également l'utiliser comme suit
:
Alors vous pouvez le mettre à votre image et avec la méthode qui s'agrandit avec un zoom, pour lequel j'ai utilisé des valeurs en pourcentage.
OriginalL'auteur Amanuel Nega