Używam znacznika img w formacie HTML, aby wyświetlić zdjęcie w naszej aplikacji. Ustawiłem zarówno wysokość, jak i szerokość atrybutu na 64. Muszę pokazać dowolną rozdzielczość obrazu (np. 256x256, 1024x768, 500x400, 205x246, itp.) Jako 64x64. Ale ustawienie atrybutów wysokości i szerokości znacznika img na 64, nie zachowuje współczynnika proporcji, więc obraz wygląda na zniekształcony.
W celach informacyjnych mój dokładny kod to:
<img src="Runtime Path to photo" border="1" height="64" width="64">
Odpowiedzi:
Nie ustawiaj wysokości ani szerokości. Użyj jednego lub drugiego, a zostanie zachowany prawidłowy współczynnik proporcji.
źródło
tutaj jest próbka
źródło
Ustaw
width
iheight
obrazów naauto
, ale ogranicz obamax-width
imax-height
:Skrzypce
Jeśli chcesz wyświetlać obrazy o dowolnym rozmiarze w "ramkach" 64x64px, możesz użyć opakowań inline-block i ich pozycjonowania, jak w tym skrzypcach .
źródło
źródło
width
iheight
doauto
.Żadna z wymienionych metod nie umożliwia skalowania obrazu do największego możliwego rozmiaru mieszczącego się w ramce, przy jednoczesnym zachowaniu żądanego współczynnika proporcji.
Nie można tego zrobić za pomocą tagu IMG (przynajmniej nie bez odrobiny JavaScript), ale można to zrobić w następujący sposób:
źródło
style="background: url('_'); background-size: cover width:_px height:_px"
jako<img>
tagu.cover
niecontain
w celu maksymalizacji rozmiaru obrazu do możliwie największy.contain
prowadzi do „letterboxingu”.Użyj
object-fit: contain
atrybutu in w css htmlimg
.źródło
Owiń obraz w a
div
o wymiarach 64x64 i ustawwidth: inherit
na obrazek:źródło
Dlaczego nie użyjesz oddzielnego pliku CSS, aby zachować wysokość i szerokość obrazu, który chcesz wyświetlić? W ten sposób możesz koniecznie podać szerokość i wysokość.
na przykład:
źródło
Spróbuj tego:
Dodanie object-fit = "cover" zmusi obraz do zajęcia miejsca bez utraty współczynnika proporcji.
źródło