Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   отражение картинки (https://javascript.ru/forum/misc/59011-otrazhenie-kartinki.html)

Sakyra 21.10.2015 22:08

отражение картинки
 
Добрый вечер дорогие форумчане помогите с не большой наверное задачкой)

Имеется скрипт для отрисовки картинки в canvas

function renderSkin2d(skinImage)
    {
        var canvas = document.createElement('canvas');
        canvas.width = 58 * scale;
        canvas.height = 32 * scale;
        canvas.setAttribute('class', skinImage.getAttribute('class'));
        var context = canvas.getContext("2d");
        context.imageSmoothingEnabled = false;
        context.webkitImageSmoothingEnabled = false;
        context.mozImageSmoothingEnabled = false;
        var s = scale;
        var h = 16 ; 
        context.drawImage(skinImage, 4*h,  20*h, 4*h, 12*h, 4*s,  20*s, 4*s, 12*s);  
        
        context.drawImage(skinImage, 4*h,  20*h, 4*h, 12*h, 8*s,  20*s, 4*s, 12*s);
}


Первый context отрисовывает картинку правильно

а второй context отрисовывает туже самую картинку только немного правее (как второй context отзеркалить по горизонтали
context.drawImage(skinImage, 4*h,  20*h, 4*h, 12*h, 8*s,  20*s, 4*s, 12*s);
) ?

заранее всем спасибо

рони 21.10.2015 22:18

Sakyra,
http://javascript.ru/forum/misc/2166...trazhenie.html

Sakyra 21.10.2015 22:43

рони,
примерного решения с context.drawImage я там не нашла)

Sakyra 21.10.2015 23:01

context.scale(-1, 1); применить не получается


context.drawImage(skinImage, 4*h,  20*h, 4*h, 12*h, 4*s,  20*s, 4*s, 12*s);  
context.scale(-1, 1);
context.drawImage(skinImage, 4*h,  20*h, 4*h, 12*h, 8*s,  20*s, 4*s, 12*s);

рони 21.10.2015 23:50

Sakyra,
http://www.digitalia.be/software/ref...js-for-jquery/

рони 22.10.2015 00:40

canvas зеркальное отражение
 
Sakyra,
<!doctype html>
<html>
<meta charset='utf-8'>
<head><title></title></head>
<body>
<canvas id='image' width="500" height="375" ></canvas>
<script>
var k = .6,
    img = document.getElementById('image'),
    context = img.getContext('2d'),
    pic = new Image();
pic.onload = function () {
  context.canvas.width = pic.width;
  context.canvas.height = pic.height*(1 + k);
  context.drawImage(pic, 0, 0, pic.width, pic.height)
  context.translate(0, pic.height)
  context.scale(1, -1);
  context.drawImage(pic, 0, -pic.height*k, pic.width, pic.height*k)
};
pic.src = 'http://berimus.ru/uploads/thumbs/c/9/4/c94b13fe0561c596ce800e7d24e8da78.jpg';
</script>
</body>
</html>

рони 22.10.2015 01:10

Sakyra,
<!doctype html>
<html>
<meta charset='utf-8'>
<head><title></title></head>
<body>
<canvas id='image' width="500" height="375" ></canvas>
<script>
var k = .3, op = .3 ,
    img = document.getElementById('image'),
    context = img.getContext('2d'),
    pic = new Image();
pic.onload = function () {
  context.canvas.width = pic.width;
  context.canvas.height = pic.height*(1 + k);
  context.drawImage(pic, 0, 0, pic.width, pic.height)
  context.translate(0, pic.height)
  context.scale(1, -1);
  context.drawImage(pic, 0, -pic.height, pic.width, pic.height);
  gradient = context.createLinearGradient(0, 0, pic.width,0);
  gradient.addColorStop(0, "rgba(255, 255, 255, " + op + ")");
  gradient.addColorStop(1, "rgba(255, 255, 255, 1.0)");
  context.fillStyle = gradient;
  context.rect(0, -pic.height, pic.width, pic.height);
  context.fill();
};
pic.src = 'http://multiki-kartinki.narod.ru/images/Pooh28_small.jpg';
</script>
</body>
</html>


Часовой пояс GMT +3, время: 03:06.