Saya ingin mengurangi kecerahan gambar di CSS. Saya banyak mencari tapi yang saya punya hanyalah tentang bagaimana mengubah opacity, tapi itu membuat gambar lebih cerah. ada yang bisa bantu saya ?
Saya menggunakannya tetapi meningkatkan kecerahan ...
Shadi
jawaban yang diterima berfungsi dengan baik, tetapi ada juga filterefek standar CSS baru yang ingin Anda waspadai di masa mendatang. Lihat jawaban saya.
Spudley
1
@shady, dapatkah Anda dengan ramah meninjau kembali pertanyaan ini untuk menandai salah satu jawaban yang menawarkan solusi yang melibatkan filter sebagai benar. Jawaban yang Anda tandai benar akan menjadi cara untuk melakukannya pada katakanlah 2006.
Wes Modes
Jawaban:
176
Fitur yang Anda cari adalah filter. Ia mampu melakukan berbagai efek gambar, termasuk kecerahan:
Perhatikan bahwa ini adalah sesuatu yang baru-baru ini masuk ke CSS sebagai fitur. Ini tersedia, tetapi sejumlah besar browser di luar sana belum mendukungnya, dan mereka yang mendukungnya akan membutuhkan prefiks vendor (mis -webkit-filter:. -moz-filter, Dll).
Mungkin juga untuk melakukan efek filter seperti ini menggunakan SVG. Dukungan SVG untuk efek ini sudah mapan dan didukung secara luas (spesifikasi filter CSS telah diambil dari spesifikasi SVG yang ada)
Perhatikan juga bahwa ini jangan disamakan dengan filtergaya berpemilik yang tersedia di versi lama IE (meskipun saya dapat memprediksi masalah dengan ruang nama bentrok saat gaya baru menjatuhkan awalan vendornya).
Jika tidak ada yang berhasil untuk Anda, Anda masih dapat menggunakan opacityfitur yang ada , tetapi tidak seperti yang Anda pikirkan: cukup buat elemen baru dengan warna gelap pekat, letakkan di atas gambar Anda, dan hapus menggunakan opacity. Efeknya adalah gambar di belakang digelapkan.
Terakhir, Anda dapat memeriksa dukungan browser di filtersini .
Opacity tidak membuat apapun lebih terang atau lebih gelap. Ini mengubah transparansi objek. Apakah ini berpengaruh atau tidak untuk membuat sesuatu menjadi lebih cerah atau lebih gelap akan bergantung pada warna latar belakang item yang Anda ubah opasitasnya. Bertentangan dengan apa yang Anda katakan, Anda dapat membuat sesuatu menjadi lebih gelap dengan meningkatkan opacity jika Anda meletakkannya di latar belakang hitam. Gambar transparan 99% pada latar belakang hitam akan tampak hampir hitam. Oleh karena itu, saya tidak melihat mengapa div overlay terpisah diperlukan. Anda bisa mengaturnya di BG hitam. Misalnya: jsbin.com/isemec/1/edit
NickG
@NickG Saya mengatakan itu dengan asumsi latar belakang putih. Apa yang telah Anda lakukan adalah hal yang sama dengan kode saya, hanya saja saya meletakkan hamparan hitam semi transparan di atas gambar dan Anda memiliki latar belakang hitam buram dengan gambar semi transparan di atasnya.
sachleen
17
Singkatnya, letakkan hitam di belakang gambar, dan turunkan kekeruhan. Anda dapat melakukan ini dengan membungkus gambar di dalam div, dan kemudian menurunkan opasitas gambar.
Kebijakan "ayo buang prefiks untuk berjaga-jaga" ini salah. Pertama, jika Opera mendukungnya, tidak akan ada -o-(Opera menggunakan Webkit / Blink sekarang), kedua, Firefox langsung beralih ke non-prefiks filter, ketiga, urutan Anda salah, non-prefiks harus menjadi yang terakhir, keempat, sintaks untuk IE -ms-filterberbeda ( progid:DXImageTransform, dll), kelima, sintaks untuk Firefox berbeda dan membutuhkan SVG ( Lihat dokumen ), keenam, fitur-fitur baru sepertinya tidak akan diawali karena vendor menyadari betapa buruknya sebuah ide
Camilo Martin
5
@CamiloMartin, semestinya Anda memberikan jawaban yang lebih lengkap untuk pertanyaan ini karena belum dijawab secara lengkap.
Wes Modes
-webkit-filter: brightness () / -webkit-filter: contrast () berfungsi. Ini adalah jawaban yang tepat untuk pertanyaan itu.
Harap jangan memposting jawaban yang persis sama untuk beberapa pertanyaan: itu tidak cocok untuk semua atau pertanyaan adalah duplikat yang harus ditandai / ditutup seperti itu.
Jika Anda memiliki gambar latar belakang, Anda dapat melakukan ini: Setel gradien rgba () pada gambar latar belakang.
.img_container {float: left;width:300px;height:300px;display: flex;justify-content: center;align-items: center;border:1px solid #fff;}.image_original {background:url(https://i.ibb.co/GkDXWYW/demo-img.jpg);}.image_brighness {background: linear-gradient(0deg, rgba(0,0,0,0.5), rgba(0,0,0,0.5)),/* the gradient on top, adjust color and opacity to your taste */url(https://i.ibb.co/GkDXWYW/demo-img.jpg);}.img_container p {color:#fff;font-size:28px;}
terima kasih tapi itu meningkatkan kecerahan bukan menguranginya !!
Shadi
Itu tergantung dari warna background.
kiamat
kanan @zgnilec tergantung dari warna background ... jika di taruh hitam kecerahan gambar akan berkurang
Shadi
ini tidak berfungsi untuk meningkatkan kecerahan lebih dari 100%, opasitas hanya bisa mencapai 1
Javis Perez
Sebagai pembicara non-Inggris, saya sebenarnya ingin mencari "opacity" dan mendapatkan usulan jawaban ini. Bahkan jika jawaban ini tidak menjawab pertanyaannya, ada baiknya mengetahui bahwa opacitymeningkatkan kecerahan. ;)
filter
efek standar CSS baru yang ingin Anda waspadai di masa mendatang. Lihat jawaban saya.Jawaban:
Fitur yang Anda cari adalah
filter
. Ia mampu melakukan berbagai efek gambar, termasuk kecerahan:Anda dapat menemukan artikel bermanfaat tentangnya di sini: http://www.html5rocks.com/en/tutorials/filters/understanding-css/
Yang lain: http://davidwalsh.name/css-filters
Dan yang terpenting, spesifikasi W3C: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html
Perhatikan bahwa ini adalah sesuatu yang baru-baru ini masuk ke CSS sebagai fitur. Ini tersedia, tetapi sejumlah besar browser di luar sana belum mendukungnya, dan mereka yang mendukungnya akan membutuhkan prefiks vendor (mis
-webkit-filter:
.-moz-filter
, Dll).Mungkin juga untuk melakukan efek filter seperti ini menggunakan SVG. Dukungan SVG untuk efek ini sudah mapan dan didukung secara luas (spesifikasi filter CSS telah diambil dari spesifikasi SVG yang ada)
Perhatikan juga bahwa ini jangan disamakan dengan
filter
gaya berpemilik yang tersedia di versi lama IE (meskipun saya dapat memprediksi masalah dengan ruang nama bentrok saat gaya baru menjatuhkan awalan vendornya).Jika tidak ada yang berhasil untuk Anda, Anda masih dapat menggunakan
opacity
fitur yang ada , tetapi tidak seperti yang Anda pikirkan: cukup buat elemen baru dengan warna gelap pekat, letakkan di atas gambar Anda, dan hapus menggunakanopacity
. Efeknya adalah gambar di belakang digelapkan.Terakhir, Anda dapat memeriksa dukungan browser di
filter
sini .sumber
OP ingin mengurangi kecerahan, bukan meningkatkannya. Opacity membuat gambar terlihat lebih cerah, bukan lebih gelap.
Anda dapat melakukan ini dengan melapisi div hitam di atas gambar dan mengatur opasitas div itu.
DEMO
sumber
Singkatnya, letakkan hitam di belakang gambar, dan turunkan kekeruhan. Anda dapat melakukan ini dengan membungkus gambar di dalam div, dan kemudian menurunkan opasitas gambar.
Sebagai contoh:
Ini adalah JSFiddle.
sumber
Anda bisa menggunakan:
sumber
-o-
(Opera menggunakan Webkit / Blink sekarang), kedua, Firefox langsung beralih ke non-prefiksfilter
, ketiga, urutan Anda salah, non-prefiks harus menjadi yang terakhir, keempat, sintaks untuk IE-ms-filter
berbeda (progid:DXImageTransform
, dll), kelima, sintaks untuk Firefox berbeda dan membutuhkan SVG ( Lihat dokumen ), keenam, fitur-fitur baru sepertinya tidak akan diawali karena vendor menyadari betapa buruknya sebuah ideDengan CSS3 kita dapat dengan mudah mengatur gambar. Tapi ingat ini tidak mengubah gambar. Ini hanya menampilkan gambar yang disesuaikan.
Lihat kode berikut untuk lebih jelasnya.
Untuk membuat gambar menjadi abu-abu:
Untuk memberikan tampilan sepia:
Untuk mengatur kecerahan:
Untuk mengatur kontras:
Untuk mengaburkan gambar:
sumber
Saya menemukan ini hari ini. Itu sangat membantu saya. http://www.propra.nl/playground/css_filters/
Yang Anda butuhkan hanyalah menambahkan ini ke gaya css Anda .:
sumber
Jika Anda memiliki gambar latar belakang, Anda dapat melakukan ini: Setel gradien rgba () pada gambar latar belakang.
sumber
Anda dapat menggunakan filter css, di bawah dan contoh untuk web-kit. silakan lihat contoh ini: http://jsfiddle.net/m9sjdbx6/4/
sumber
Saya punya solusi keren ini: https://jsfiddle.net/yLcd5z0h/
sumber
coba ini jika Anda perlu mengubah gambar hitam menjadi putih:
sumber
Suka
sumber
opacity
meningkatkan kecerahan. ;)