Modification d'une taille d'image<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'ai des dizaines de photos que je veux que mes utilisateurs puissent redimensionner facilement.J'ai construit une petite fonction qui fait l'affaire mais je pense qu'il doit y avoir un meilleur moyen.Ci-dessous un exemple de ce que je fais.Étant donné que les images changent constamment, je ne connais que la référence à la boîte à images.L'un des problèmes avec cette stratégie est qu'en redimensionnant l'image plusieurs fois, cela dégrade la qualité.
Je me demandais si quelqu'un avait utilisé le << Inval, ou << Inval Size; Je pense que l'une de ces deux méthodes serait plus lisse.
Aussi, est-ce que quelqu'un connaît la différence entre << Get Image; et << Obtenir une image ?Les résultats de Get Picture sont légèrement plus petits et les BLOB sont complètement différents - get Image étant plus grand.
Noms par défaut ici ( 1 ) ;
image = Nouvelle image ( "$SAMPLE_IMAGES/tuile.jpg" ) ;
imgTaille = 300 ;
image << Définir la taille ({ imgTaille , imgTaille }) ;
Nouvelle fenetre ( "Test" , vlistbox ( Boîte à curseur ( 100 , 1000 , imgTaille ) ,
Boîte à boutons ( "Définir la taille" ,
tempImage = pb << Obtenir une image ;
tempImage << Définir la taille ({ imgTaille , imgTaille }) ;
pb << Définir l'image ( tempImage ) ;
) ,
pb = Boîte d'image ( image ))) ;
Re : Changer la taille d'une image(Désactivez la case à cocher Traduire en haut de la page si ce texte semble foiré)
< n'importe quel boîte d'affichage; il fait que la boîte et ses enfants sont dessinés dans un bitmap.
< un PictBox ou une GraphBox.Pour le GraphBox, il fait à peu près la même chose que <
Vous voudrez probablement utiliser <<
L'utilisation de getPicture avec un PictBox réencodera les pixels si vous l'enregistrez ; vous pouvez éviter le réencodage avec getImage et l'enregistrement au même format.Le réencodage peut dégrader la qualité de l'image, en particulier avec JPG.
mise à jour : j'aime aussi la boîte de cadre (Graph Box) Commande <
g[framebox(1)]<
Re : Changer la taille d'une imageMS C'est une solution intéressante pour garder la résolution de l'image claire.
Justin, comme indiqué ci-dessus, les images dans la zone d'image changent.Garder une trace des images au lieu des boîtes d'image serait plus de travail que je ne veux y consacrer.
Re : Changer la taille d'une imageDe même, vous pouvez simplement conserver une référence à l'image d'origine afin d'éviter la zone d'image réduite.
Noms par défaut ici ( 1 ) ;
image d'origine = Nouvelle image ( "$SAMPLE_IMAGES/tuile.jpg" ) ;
image = Nouvelle image ( "$SAMPLE_IMAGES/tuile.jpg" ) ;
imgTaille = 300 ;
image << Définir la taille ( { imgTaille , imgTaille } ) ;
Nouvelle fenetre ( "Test" ,
Zone de liste V (
Boîte à curseur ( 100 , 1000 , imgTaille ) ,
Boîte à boutons ( "Définir la taille" ,
image = Nouvelle image ( image d'origine ) ;
image << Définir la taille ( { imgTaille , imgTaille } ) ;
pb << Définir l'image ( image ) ;
) ,
pb = Boîte d'image ( image )
)
);
Re : Modifier une taille d'imageSi la référence à l'image d'origine est inconnue dans le contexte d'exécution du code, une solution au problème de dégradation peut être une copie invisible du bloc d'image d'origine.
Un exemple (pas n'importe lequel cependant):
nouveau = Nouvelle fenetre ( "Test" ,
Zone de liste V (
Boîte à curseur ( 100 , 1000 , imgTaille ) ,
Boîte à boutons ( "Définir la taille" ,
image d'origine = pb1 << Obtenir une image ;
image d'origine << Définir la taille ({ imgTaille , imgTaille }) ;
pb << Définir l'image ( image d'origine ) ;
) ,
pb = Boîte d'image ( image ) ,
pb1 = Boîte d'image ( image ) ;
pb1 << visibilité ( s'est effondré )
)
) ;