БлогNot. Зеркальный День или отрази картинку на canvas

Зеркальный День или отрази картинку на canvas

Следующий зеркальный день - 18 февраля с.г. И вот почему:

Извините, нужен Javascript для работы примера
Извините, Ваш браузер не поддерживает тег canvas

Исходник этого маленького скрипта, с точностью до размещения картинки (в листинге предполагается, что картинка с именем 2.png находится в текущей папке), таков:

<script type="text/javascript">
var img = new Image();
    img.src = "./2.png";
img.onload = function() {
 var c = document.getElementById("outputMirror");
 var ctx = c.getContext("2d");
 ctx.drawImage (img, img.width, 0);
 ctx.save();
 ctx.translate(img.width, 0);
 ctx.scale(-1, 1);
 ctx.globalAlpha = 0.25;
 ctx.drawImage (img, 0, 0);
 ctx.restore();
 ctx.setTransform (1,0,0,1,0,0);
};
</script>
<noscript>
 <div align="center">
  Извините, нужен Javascript для работы примера
 </div>
</noscript>

<div align="center">
 <canvas id="outputMirror" width="500" height="150">
  Извините, Ваш браузер не поддерживает тег canvas
 </canvas>
</div>

Сама исходная картинка - вот она:

картинка 2.png
картинка 2.png

Ну а первым был пример, демонстрирующий вертикальное отражение картинки с помощью тега <canvas> и Javascript:

Извините, нужен Javascript для работы примера
Извините, Ваш браузер не поддерживает тег canvas

Вот картинка для него и исходник, с учётом того, что в реальном документе, если мы разместим оба скрипта, мы должны будем поменять путь к картинке и переименовать, например, img в img2, а outputMirror - в outputMirror2. Изначально тут исходник чуть более замудрён, но пусть так и остаётся.

картинка 1.png
картинка 1.png
<script type="text/javascript">
var img = new Image();
    img.src = "./1.png";
img.onload = function() {
 var thumbWidth = 240;
 var reflectionHeight = 256;
 var c = document.getElementById("outputMirror");
 var ctx = c.getContext("2d");
 var x = 0;
 var y = 0;
 ctx.drawImage(img, x, y, thumbWidth, thumbWidth); //исходный рисунок
 ctx.save();
 ctx.translate(0, y + thumbWidth + reflectionHeight + 1);
 ctx.scale(1, -1);
 ctx.globalAlpha = 0.25; //прозрачность
 ctx.drawImage(img, 0, img.height - reflectionHeight, img.width, reflectionHeight, 
  x, y, thumbWidth, reflectionHeight); //отражение
 ctx.restore();
 ctx.setTransform (1,0,0,1,0,0);
};
</script>
<noscript>
 <div align="center">
  Извините, нужен Javascript для работы примера
 </div>
</noscript>

<div align="center">
 <canvas id="outputMirror" width="240" height="500">
  Извините, Ваш браузер не поддерживает тег canvas
 </canvas>
</div>

Ну а "зеркальные дни" в этом веке ещё будут, аж до 28.02.2028.

07.02.2018, 08:45 [3069 просмотров]


теги: javascript картинка графика дата

К этой статье пока нет комментариев, Ваш будет первым