다음과 같은 코드는 수직 미러 이미지와 투명한 배경 그라데이션 그라데이션을 결합하려고합니다. 이 두 가지 효과를 결합하면 실패합니다. 두 작업을 수행하기 위해 캔버스를 가져 오는 대신 캔바스 위에 PNG 그래디언트를 오버레이해야합니까? 매우 설득력 그라디언트 오버레이를 제공하지 않는 두 번째 캔버스를 사용HTML Canvas로 반사 된 이미지를 만드시겠습니까?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
<style type="text/css">
body {
background-color: #eee;
text-align: center;
padding-top: 150px;
}
</style>
<script type="text/javascript">
var img = new Image();
img.onload = function() {
var ctx = document.getElementById("output").getContext("2d");
// reflect image
ctx.translate(0, 75);
ctx.scale(1, -1);
ctx.drawImage(img, 0, 0, 75, 75);
// add gradient
var grad = ctx.createLinearGradient(0, 0, 0, 20);
grad.addColorStop(0, 'transparent');
grad.addColorStop(1, '#eeeeee');
ctx.fillStyle = grad;
ctx.fillRect(0, 0, 75, 20);
};
img.src = "test.jpg";
</script>
</head>
<body>
<div><img src="test.jpg" height="75" width="75" /></div>
<canvas id="output" width="75" height="20"></canvas>
</body>
</html>
에 대한 링크입니다 투명 시도하기 전에 중지합니다. 그래디언트 만 적용하거나 반사 이미지 만 적용 할 수 있지만 둘 다 적용 할 수는 없습니다. –
브라우저에서 캔버스가 지원되는 경우 일부 CSS3도 지원 될 가능성이 있습니다 ... CSS3 만 사용하여 반사 (iTunes 스타일)를 만들 수 있습니다 (자바 스크립트 필요 없음). http://s3.amazonaws.com/nettuts/704_cssReflections/index.html – Greg