Comment réduire la luminosité de L'Image dans CSS

je veux diminuer la luminosité de l'image dans CSS. J'ai cherché beaucoup, mais tout ce que j'ai c'est comment changer l'opacité, mais ça rend l'image plus claire. quelqu'un peut-il m'aider ?

82
demandé sur Shadi 2012-07-18 10:22:42

10 réponses

la caractéristique que vous recherchez est filter . Il est capable de faire une gamme d'effets d'image, y compris la luminosité:

#myimage {
    filter: brightness(50%);
}

vous pouvez trouver un article utile à ce sujet ici: http://www.html5rocks.com/en/tutorials/filters/understanding-css /

un autre: http://davidwalsh.name/css-filters

et surtout, les spécifications du W3C: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html

notez que c'est quelque chose qui n'est que très récemment entré dans CSS en tant que fonctionnalité. Il est disponible, mais un grand nombre de navigateurs là-bas ne le supportera pas encore, et ceux qui le supporteront auront besoin d'un préfixe vendeur (i.e. -webkit-filter: , -moz-filter , etc).

il est également possible de faire des effets de filtre comme celui-ci en utilisant SVG. La prise en charge de ces effets par SVG est bien établie et largement soutenu (les spécifications du filtre CSS ont été tirées des spécifications SVG existantes)

aussi noter que cela ne doit pas être confondu avec le style propriétaire filter disponible dans les anciennes versions D'IE (bien que je puisse prédire un problème avec le conflit d'espace de noms quand le nouveau style laisse tomber son préfixe vendeur).

si rien de tout cela ne fonctionne pour vous, vous pouvez toujours utiliser la fonctionnalité opacity existante, mais pas la façon dont vous pensez: il suffit de créer un nouvel élément avec une couleur foncée solide, placez-le sur votre image, et fondu en utilisant opacity . L'effet sera l'image derrière être obscurcie.

enfin, vous pouvez consulter le support du navigateur de filter ici .

Espère que ça aide.

133
répondu Spudley 2018-08-11 12:51:57

OP veut en baisse luminosité", pas l'augmenter. L'opacité rend l'image plus lumineuse, pas plus sombre.

vous pouvez le faire en superposant une div noire sur l'image et en définissant l'opacité de cette div.

<style>
#container {
    position: relative;
}
div.overlay {
    opacity: .9;
    background-color: black;
    position: absolute;
    left: 0; top: 0; height: 256px; width: 256px;
}
</style>

Normal:<br />
<img src="http://i.imgur.com/G8eyr.png">
<br />
Decreased brightness:<br />
<div id="container">
    <div class="overlay"></div>
    <img src="http://i.imgur.com/G8eyr.png">
</div>

DÉMO

32
répondu sachleen 2012-07-18 06:33:23

en bref, placez le noir derrière l'image, et baissez l'opacité. Vous pouvez le faire en enveloppant l'image dans une div, puis en réduisant l'opacité de l'image.

par exemple:

<!DOCTYPE html>

<style>
    .img-wrap {
        background: black;
        display: inline-block;
        line-height: 0;
    }
        .img-wrap > img {
            opacity: 0.8;
        }
</style>

<div class="img-wrap">
    <img src="http://mikecane.files.wordpress.com/2007/03/kitten.jpg" />
</div>

ici est un JSFiddle.

17
répondu JL235 2012-07-18 06:41:11

vous pouvez utiliser:

filter: brightness(50%);
-webkit-filter: brightness(50%);
-moz-filter: brightness(50%);
-o-filter: brightness(50%);
-ms-filter: brightness(50%);
15
répondu Nahomy Atias 2013-09-03 00:41:08

avec CSS3 nous pouvons facilement ajuster une image. Mais rappelez-vous que cela ne change pas l'image. Il affiche seulement l'image ajustée.

Voir le code suivant pour plus de détails.

pour faire une image grise:

img {
 -webkit-filter: grayscale(100%);
 -moz-filter: grayscale(100%);
}

pour donner un aspect sépia:

    img {
     -webkit-filter: sepia(100%);
    -moz-filter: sepia(100%);
}

pour régler la luminosité:

 img {
     -webkit-filter: brightness(50%);
     -moz-filter: brightness(50%);  
  }

pour ajuster le contraste:

 img {
     -webkit-filter: contrast(200%);
     -moz-filter: contrast(200%);    
}

pour brouiller image:

    img {
     -webkit-filter: blur(10px);
    -moz-filter: blur(10px);
  }
6
répondu Raj Sharma 2017-03-24 11:29:03

j'ai trouvé ça aujourd'hui. Il m'a vraiment aidé. http://www.propra.nl/playground/css_filters /

Tout ce dont vous avez besoin est d'ajouter ceci à votre style css.:

div {-webkit-filter: brightness(57%)}
4
répondu Spirit In Motion 2014-12-07 18:04:53

vous pouvez utiliser des filtres css, ci-dessous et par exemple pour web-kit. veuillez regarder cet exemple: http://jsfiddle.net/m9sjdbx6/4 /

    img { -webkit-filter: brightness(0.2);}
2
répondu GibboK 2014-10-18 19:00:38
-webkit-filter: brightness(0.50);

j'ai cette solution cool: https://jsfiddle.net/yLcd5z0h/

1
répondu Prashant Ghimire 2015-03-28 03:56:32

essayez ceci si vous avez besoin de convertir l'image noire en blanc:

.classname{
    filter: brightness(0) invert(1);
}
0
répondu Rizo 2018-02-12 18:53:18

Comme

.classname
{
 opacity: 0.5;
}
-2
répondu Satinder singh 2012-07-18 06:25:23