Saya ingin menampilkan gambar dari URL dengan lebar dan tinggi tertentu walaupun memiliki rasio ukuran yang berbeda. Jadi saya ingin mengubah ukuran (mempertahankan rasio) dan kemudian memotong gambar ke ukuran yang saya inginkan.
Saya dapat mengubah ukuran dengan img
properti html dan saya dapat memotong dengan background-image
.
Bagaimana saya bisa melakukan keduanya?
Contoh:
Gambar ini:
Memiliki ukuran 800x600
piksel dan saya ingin menampilkan seperti gambar 200x100
piksel
Dengan img
saya dapat mengubah ukuran gambar 200x150px
:
<img
style="width: 200px; height: 150px;"
src="http://i.stack.imgur.com/wPh0S.jpg">
Itu memberi saya ini:
<img style="width: 200px; height: 150px;" src="https://i.stack.imgur.com/wPh0S.jpg">
Dan dengan background-image
saya dapat memotong 200x100
piksel gambar .
<div
style="background-image:
url('https://i.stack.imgur.com/wPh0S.jpg');
width:200px;
height:100px;
background-position:center;"> </div>
Memberi saya:
<div style="background-image:url('https://i.stack.imgur.com/wPh0S.jpg'); width:200px; height:100px; background-position:center;"> </div>
Bagaimana saya bisa melakukan keduanya?
Ubah ukuran gambar dan potong ukuran yang saya inginkan?
sumber
Dengan CSS3, Anda dapat mengubah ukuran
background-image
denganbackground-size
, memenuhi kedua tujuan sekaligus.Ada banyak contoh di css3.info .
Diimplementasikan berdasarkan contoh Anda , menggunakan donald_duck_4.jpg . Dalam hal ini,
background-size: cover;
hanya apa yang Anda inginkan - itu cocokbackground-image
untuk menutupi seluruh area yang mengandung<div>
dan klip kelebihan (tergantung pada rasio).css3 gambar latar belakang ukuran latar belakang
sumber
<img />
tag, lihatobject-fit: cover
dan nilai terkait dari spesifikasi Nilai Gambar CSS dan Modul Tingkat 3 yang Diganti .Apakah Anda mencoba menggunakan ini?
Saya perlu mengubah ukuran gambar, tengah (baik secara vertikal dan horizontal) dan daripada memotongnya.
Saya senang menemukan, bahwa itu bisa dilakukan dalam satu css-line. Lihat contoh di sini: http://codepen.io/chrisnager/pen/azWWgr/?editors=110
Berikut adalah
CSS
danHTML
kode dari contoh itu:sumber
Div yang berisi dengan dasarnya memotong gambar dengan menyembunyikan overflow.
sumber
sumber
Terima kasih sanchothefat.
Saya memiliki peningkatan pada jawaban Anda. Karena pemangkasan sangat disesuaikan untuk setiap gambar, definisi ini harus di HTML alih-alih CSS.
sumber
sumber
Kode di bawah ini akan memotong gambar Anda untuk Anda. Anda dapat bermain-main dengan objek-fit
sumber
Contoh Langsung: https://jsfiddle.net/de4Lt57z/
HTML:
CSS:
Penjelasan: Di sini gambar diubah ukurannya dengan nilai lebar dan tinggi gambar. Dan memotong dilakukan oleh properti klip.
Untuk detail tentang properti klip, ikuti: http://tympanus.net/codrops/2013/01/16/understanding-the-css-clip-property/
sumber
Di kelas pangkas, tempatkan ukuran gambar yang ingin Anda tampilkan:
Html akan terlihat seperti:
sumber
sumber
Anda dapat meletakkan tag img di tag div dan melakukan keduanya, tetapi saya akan merekomendasikan untuk tidak menskala gambar di browser. Itu melakukan pekerjaan yang buruk sebagian besar waktu karena browser memiliki algoritma penskalaan yang sangat sederhana. Lebih baik melakukan scaling Anda di Photoshop atau ImageMagick terlebih dahulu, kemudian sajikan kepada klien dengan baik dan cantik.
sumber
Apa yang saya lakukan adalah membuat skrip sisi server yang akan mengubah ukuran dan memotong gambar di ujung server sehingga akan mengirim lebih sedikit data di seluruh jala.
Ini cukup sepele, tetapi jika ada yang tertarik, saya dapat menggali dan memposting kode (asp.net)
sumber
Ada layanan seperti Filestack yang akan melakukan ini untuk Anda.
Mereka mengambil url gambar Anda dan memungkinkan Anda untuk mengubah ukurannya menggunakan parameter url. Ini sangat mudah.
Gambar Anda akan terlihat seperti ini setelah mengubah ukuran menjadi 200x100 tetapi menjaga aspek rasio
Seluruh url terlihat seperti ini
tetapi bagian yang penting adalah adil
sumber
Coba gunakan
clip-path
properti:Lebih banyak contoh di sini .
sumber
sumber
Jika Anda menggunakan Bootstrap, coba gunakan
{ background-size: cover; }
untuk<div>
mungkin memberikan div sebuah katakanlah kelas<div class="example" style=url('../your_image.jpeg');>
sehingga menjadidiv.example{ background-size: cover}
sumber
Saya perlu melakukan ini baru-baru ini. Saya ingin membuat tautan thumbnail ke grafik NOAA. Karena grafik mereka dapat berubah kapan saja, saya ingin thumbnail saya berubah dengannya. Tetapi ada masalah dengan grafik mereka: grafik ini memiliki batas putih besar di bagian atas, jadi jika Anda hanya skala untuk membuat thumbnail Anda berakhir dengan spasi kosong di dokumen.
Inilah cara saya menyelesaikannya:
http://sealevel.info/example_css_scale_and_crop.html
Pertama saya perlu melakukan sedikit aritmatika. Gambar asli dari NOAA adalah 960 × 720 piksel, tetapi tujuh puluh piksel teratas adalah area perbatasan putih yang berlebihan. Saya membutuhkan thumbnail 348 × 172, tanpa area perbatasan tambahan di bagian atas. Itu berarti bagian yang diinginkan dari gambar asli adalah 720 - 70 = 650 piksel. Saya perlu skala itu ke 172 piksel, yaitu, 172/650 = 26,5%. Itu berarti 26,5% dari 70 = 19 baris piksel perlu dihapus dari atas gambar yang diskalakan.
Begitu…
Atur tinggi = 172 + 19 = 191 piksel:
tinggi = 191
Atur margin bawah ke -19 piksel (memperpendek gambar hingga 172 piksel tinggi):
margin-bottom: -19px
Atur posisi teratas ke -19 piksel (menggeser gambar ke atas, sehingga baris 19 piksel teratas meluap & disembunyikan alih-alih yang bawah):
atas: -19px
HTML yang dihasilkan terlihat seperti ini:
Seperti yang Anda lihat, saya memilih untuk menata tag <a> yang berisi, tetapi Anda dapat menata <div>.
Salah satu artifak dari pendekatan ini adalah bahwa jika Anda menunjukkan batas, batas atas akan hilang. Karena saya menggunakan border = 0 bagaimanapun, itu bukan masalah bagi saya.
sumber
Anda dapat menggunakan Layanan Ubah Ukuran Gambar Kodem . Anda dapat mengubah ukuran gambar apa pun hanya dengan panggilan http. Dapat digunakan dengan santai di browser atau digunakan di aplikasi produksi Anda.
sumber