任何人都知道一種方法,我可以讓CSS製作一個PNG圖像,透明度看起來像一個輪廓完全變黑嗎?使用CSS剪影一個PNG圖像
在其他words- 從東西走向是這樣的:
要這樣:
這對大量的圖片這就是爲什麼我想避免通過Photoshop來做到這一點。
任何人都知道一種方法,我可以讓CSS製作一個PNG圖像,透明度看起來像一個輪廓完全變黑嗎?使用CSS剪影一個PNG圖像
在其他words- 從東西走向是這樣的:
要這樣:
這對大量的圖片這就是爲什麼我想避免通過Photoshop來做到這一點。
我想這個代碼,使用畫布,也許你可以完善它特別是在輕像素蘋果
<img id="canvasSource" src="apple.jpg" />
<br />
<canvas id="area" width="264" height="282"></canvas>
<!-- Javascript Code -->
<script type="text/javascript">
window.onload = function() {
var canvas = document.getElementById("area");
var context = canvas.getContext("2d");
var image = document.getElementById("canvasSource");
context.drawImage(image, 0, 0);
var imgd = context.getImageData(0, 0, 264, 282);
var pix = imgd.data;
var blackpixel = 21;
for (var i = 0, n = pix.length; i < n; i += 4) {
//console.log(pix[i], pix[i+1], pix[i+2]);
if (i > 3) {
if ((Math.abs(pix[i-3] - pix[i]) > 10) &&
(Math.abs(pix[i-2] - pix[i+1]) > 10) &&
(Math.abs(pix[i-1] - pix[i+2]) > 10)
) {
pix[i ] = blackpixel;
pix[i+1] = blackpixel;
pix[i+2] = blackpixel;
}
}
else {
if (pix[i] < 250 && pix[i+1] < 250 && pix[i+2] < 250) {
pix[i ] = blackpixel;
pix[i+1] = blackpixel;
pix[i+2] = blackpixel;
}
}
}
context.putImageData(imgd, 0, 0);
};
</script>
Rad解決方案,fcalderan!只需要添加var blackpixel = 0; (對於任何絆倒這個代碼的人)。 – Susan 2010-11-19 21:26:35
可以應用到圖像風格像filter: contrast(0%) brightness(50%)
得到一個人影內。不要忘記前綴。
Nowdays,濾波器相結合進行混合,混合模式可以做太多:
span {/* to be used to lay the 'blender mask' over img */
position: relative;
display: inline-block;
overflow:hidden;
}
span img {
display: block;/* erase gap */
max-width:45vw;
filter: contrast(150%);
}
span + span img {
filter: contrast(120%) saturate(0%);/* saturate(0%) is similar to grayscale(100%) */
}
span:before {
content: '';
z-index: 1;
height: 100%;
background: white;
position: absolute;
top: 0;
width: 100%;
display: block;
filter: contrast(10000%) brightness(0) saturate(100%) grayscale(100%);
mix-blend-mode: color-burn;/* bake it to black */
animation : span 2s infinite alternate;
}
@keyframes span {
from{
transform:translate(-100%,0)
}
25%,50% {
transform:translate(0,0);
}
to{
transform:translate(100%,0)
}
}
<span><img src="https://i.stack.imgur.com/somZ7.jpg"/></span>
<span><img src="https://i.stack.imgur.com/somZ7.jpg"/></span>
我敢肯定這是那些「CSS不能做」的例子之一。你只需要進入Photoshop(其實很簡單,不應該超過兩分鐘:)) – Kyle 2010-11-18 14:10:03