Saya menggunakan tag img HTML untuk menampilkan foto di aplikasi kami. Saya telah menetapkan atribut tinggi dan lebarnya menjadi 64. Saya harus menunjukkan resolusi gambar apa pun (misalnya 256x256, 1024x768, 500x400, 205x246, dll.) Sebagai 64x64. Tetapi dengan mengatur atribut tinggi dan lebar dari tag img ke 64, itu tidak mempertahankan rasio aspek, sehingga gambar terlihat terdistorsi.
Untuk referensi Anda, kode persis saya adalah:
<img src="Runtime Path to photo" border="1" height="64" width="64">
Jawaban:
Jangan atur tinggi DAN lebar. Gunakan satu atau yang lain dan rasio aspek yang benar akan dipertahankan.
sumber
di sini adalah satu sampel
sumber
Atur
width
danheight
dari gambar-gambar ituauto
, tetapi batasi keduanyamax-width
danmax-height
:Biola
Jika Anda ingin menampilkan gambar dengan ukuran sewenang-wenang di "frame" 64x64px, Anda dapat menggunakan pembungkus inline-blok dan memposisikannya, seperti pada biola ini .
sumber
sumber
width
danheight
keauto
.Tak satu pun dari metode yang terdaftar yang menskala gambar ke ukuran terbesar yang mungkin ada dalam sebuah kotak sambil mempertahankan rasio aspek yang diinginkan.
Ini tidak dapat dilakukan dengan tag IMG (setidaknya bukan tanpa sedikit pun JavaScript), tetapi dapat dilakukan sebagai berikut:
sumber
style="background: url('_'); background-size: cover width:_px height:_px"
untuk<img>
tag.cover
tidak perlucontain
memaksimalkan ukuran gambar semaksimal mungkin.contain
mengarah ke "letterboxing".Gunakan
object-fit: contain
atribut di dalam css htmlimg
.sumber
Bungkus gambar
div
dengan dimensi 64x64 dan aturwidth: inherit
ke gambar:sumber
Mengapa Anda tidak menggunakan file CSS terpisah untuk mempertahankan tinggi dan lebar gambar yang ingin Anda tampilkan? Dengan cara itu, Anda dapat memberikan lebar dan tinggi tentu.
misalnya:
sumber
Coba ini:
Menambahkan objek-fit = "penutup" akan memaksa gambar untuk mengambil ruang tanpa kehilangan rasio aspek.
sumber