J'utilise une balise img HTML pour afficher une photo dans notre application. J'ai défini à la fois son attribut de hauteur et de largeur sur 64. Je dois afficher toute résolution d'image (par exemple, 256x256, 1024x768, 500x400, 205x246, etc.) en 64x64. Mais en définissant les attributs de hauteur et de largeur d'une balise img sur 64, cela ne maintient pas le rapport hauteur / largeur, donc l'image semble déformée.
Pour votre référence, mon code exact est:
<img src="Runtime Path to photo" border="1" height="64" width="64">
Réponses:
Ne définissez pas la hauteur ET la largeur. Utilisez l'un ou l'autre et le rapport hauteur / largeur correct sera conservé.
la source
voici l'exemple
la source
Définissez
width
etheight
des images surauto
, mais limitez à la foismax-width
etmax-height
:Violon
Si vous voulez afficher des images de taille arbitraire dans les "cadres" de 64x64px, vous pouvez utiliser des wrappers de blocs en ligne et leur positionnement, comme dans ce violon .
la source
la source
width
etheight
àauto
.Aucune des méthodes répertoriées ne redimensionne l'image à la plus grande taille possible qui tient dans une boîte tout en conservant le rapport hauteur / largeur souhaité.
Cela ne peut pas être fait avec la balise IMG (du moins pas sans un peu de JavaScript), mais cela peut être fait comme suit:
la source
style="background: url('_'); background-size: cover width:_px height:_px"
pour le<img>
tag.cover
pas nécessairecontain
de maximiser la taille de l'image au maximum.contain
conduit au "letterboxing".Utilisez l'
object-fit: contain
attribut en css de htmlimg
.la source
Enveloppez l'image dans un
div
coté 64x64 et définissez-lawidth: inherit
sur l'image:la source
Pourquoi n'utilisez-vous pas un fichier CSS distinct pour conserver la hauteur et la largeur de l'image que vous souhaitez afficher? De cette façon, vous pouvez fournir nécessairement la largeur et la hauteur.
par exemple:
la source
Essaye ça:
Ajouter object-fit = "cover" forcera l'image à occuper de l'espace sans perdre le rapport hauteur / largeur.
la source