js image 翻转_创建HTML5 Image Effects应用–添加水平翻转

js image 翻转

HTML5 Image Effects App - Adding Horizontal Flip
HTML5 Image Effects App - Adding Horizontal Flip

HTML5 image effects – horizontal flip. Today we going to continue HTML5 canvas examples, I hope you enjoy this series of articles. Even for me, working with graphics, images brings pleasure. Sure that you like this too. Today we will be adding new filter – Horizontal Flip.

HTML5图像效果–水平翻转。 今天我们将继续HTML5 canvas示例,希望您喜欢本系列文章。 即使是对我来说,使用图形,图像也能带来乐趣。 确保您也喜欢这个。 今天,我们将添加新的过滤器–水平翻转。

Here are our demo and downloadable package:

这是我们的演示和可下载的软件包:

现场演示

[sociallocker]

[社交储物柜]

打包下载

[/sociallocker]

[/ sociallocker]

Ok, download the example files and lets start coding !

好的,下载示例文件并开始编码!

步骤1. HTML (Step 1. HTML)

Here are all html of my demo

这是我的演示的全部html

index.html (index.html)

<!DOCTYPE html>
<html lang="en" >
    <head>
        <meta charset="utf-8" />
        <title>HTML5 Image Effects App - Adding Horizontal Flip | Script Tutorials</title>
        <link href="css/main.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="js/script.js"></script>
    </head>
    <body>
        <div class="container">
            <div class="column1">
                Reset to:<br />
                <input type="button" onclick="resetToColor()" value="Color" />
                <input type="button" onclick="resetToGrayscale()" value="Grayscale" /><hr />
                Effects:<br />
                <input type="button" onclick="resetToBlur()" value="1. Blur" /><br />
                <input type="button" onclick="resetToNoise()" value="2. Add noise" /><br />
                <input type="button" onclick="resetToInvert()" value="3. Invert colors" />
                <input type="button" onclick="resetToFlopHor()" value="4. Horizontal Flip" /><hr />
                Adjustment:<br />
                <input type="button" onclick="changeGrayValue(0.1)" value="Lighter" /><br />
                <input type="button" onclick="changeGrayValue(-0.1)" value="Darker" /><br />
                Red: <input type="button" onclick="changeColorValue('er', 10)" value="More" />
                <input type="button" onclick="changeColorValue('er', -10)" value="Less" /><br />
                Green: <input type="button" onclick="changeColorValue('eg', 10)" value="More" />
                <input type="button" onclick="changeColorValue('eg', -10)" value="Less" /><br />
                Blue: <input type="button" onclick="changeColorValue('eb', 10)" value="More" />
                <input type="button" onclick="changeColorValue('eb', -10)" value="Less" />
                Blur: <input type="button" onclick="changeBlurValue(1)" value="More" />
                <input type="button" onclick="changeBlurValue(-1)" value="Less" /><br />
            </div>
            <div class="column2">
                <canvas id="orig" width="500" height="333"></canvas>
                <canvas id="panel" width="500" height="333"></canvas>
            </div>
            <div style="clear:both;"></div>
        </div>
        <footer>
            <h2>HTML5 Image Effects App - Adding Horizontal Flip</h2>
            <a href="https://www.script-tutorials.com/html5-image-effects-app-adding-horizontal-flip" class="stuts">Back to original tutorial on <span>Script Tutorials</span></a>
        </footer>
    </body>
</html>

<!DOCTYPE html>
<html lang="en" >
    <head>
        <meta charset="utf-8" />
        <title>HTML5 Image Effects App - Adding Horizontal Flip | Script Tutorials</title>
        <link href="css/main.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="js/script.js"></script>
    </head>
    <body>
        <div class="container">
            <div class="column1">
                Reset to:<br />
                <input type="button" onclick="resetToColor()" value="Color" />
                <input type="button" onclick="resetToGrayscale()" value="Grayscale" /><hr />
                Effects:<br />
                <input type="button" onclick="resetToBlur()" value="1. Blur" /><br />
                <input type="button" onclick="resetToNoise()" value="2. Add noise" /><br />
                <input type="button" onclick="resetToInvert()" value="3. Invert colors" />
                <input type="button" onclick="resetToFlopHor()" value="4. Horizontal Flip" /><hr />
                Adjustment:<br />
                <input type="button" onclick="changeGrayValue(0.1)" value="Lighter" /><br />
                <input type="button" onclick="changeGrayValue(-0.1)" value="Darker" /><br />
                Red: <input type="button" onclick="changeColorValue('er', 10)" value="More" />
                <input type="button" onclick="changeColorValue('er', -10)" value="Less" /><br />
                Green: <input type="button" onclick="changeColorValue('eg', 10)" value="More" />
                <input type="button" onclick="changeColorValue('eg', -10)" value="Less" /><br />
                Blue: <input type="button" onclick="changeColorValue('eb', 10)" value="More" />
                <input type="button" onclick="changeColorValue('eb', -10)" value="Less" />
                Blur: <input type="button" onclick="changeBlurValue(1)" value="More" />
                <input type="button" onclick="changeBlurValue(-1)" value="Less" /><br />
            </div>
            <div class="column2">
                <canvas id="orig" width="500" height="333"></canvas>
                <canvas id="panel" width="500" height="333"></canvas>
            </div>
            <div style="clear:both;"></div>
        </div>
        <footer>
            <h2>HTML5 Image Effects App - Adding Horizontal Flip</h2>
            <a href="https://www.script-tutorials.com/html5-image-effects-app-adding-horizontal-flip" class="stuts">Back to original tutorial on <span>Script Tutorials</span></a>
        </footer>
    </body>
</html>

What I did since last our version: changed main layout a little and add new button for new Horizontal Flip.

上次发布以来,我所做的是:稍微更改了主布局,并为新的水平翻转添加了新按钮。

步骤2. CSS (Step 2. CSS)

Here are used CSS styles.

这是使用CSS样式。

css / main.css (css/main.css)

/* general styles */
*{
    margin:0;
    padding:0;
}
body {
    background-color:#bababa;
    background-image: -webkit-radial-gradient(600px 200px, circle, #ffffff, #bababa 50%);
    background-image: -moz-radial-gradient(600px 200px, circle, #ffffff, #bababa 50%);
    background-image: -o-radial-gradient(600px 200px, circle, #ffffff, #bababa 50%);
    background-image: radial-gradient(600px 200px, circle, #ffffff, #bababa 50%);
    color:#fff;
    font:14px/1.3 Arial,sans-serif;
}
footer {
    background-color:#212121;
    bottom:0;
    box-shadow: 0 -1px 2px #111111;
    display:block;
    height:70px;
    left:0;
    position:fixed;
    width:100%;
    z-index:100;
}
footer h2{
    font-size:22px;
    font-weight:normal;
    left:50%;
    margin-left:-400px;
    padding:22px 0;
    position:absolute;
    width:540px;
}
footer a.stuts,a.stuts:visited{
    border:none;
    text-decoration:none;
    color:#fcfcfc;
    font-size:14px;
    left:50%;
    line-height:31px;
    margin:23px 0 0 110px;
    position:absolute;
    top:0;
}
footer .stuts span {
    font-size:22px;
    font-weight:bold;
    margin-left:5px;
}
/* tutorial styles */
.container {
    color:#000;
    margin:20px auto;
    position:relative;
    width:730px;
}
.column1 {
    float:left;
    padding-right:10px;
    text-align:right;
    width:185px;
}
.column2 {
    float:left;
    width:500px;
    background-color:#888;
    padding:10px;
}
input[type=button] {
    margin:5px;
}

/* general styles */
*{
    margin:0;
    padding:0;
}
body {
    background-color:#bababa;
    background-image: -webkit-radial-gradient(600px 200px, circle, #ffffff, #bababa 50%);
    background-image: -moz-radial-gradient(600px 200px, circle, #ffffff, #bababa 50%);
    background-image: -o-radial-gradient(600px 200px, circle, #ffffff, #bababa 50%);
    background-image: radial-gradient(600px 200px, circle, #ffffff, #bababa 50%);
    color:#fff;
    font:14px/1.3 Arial,sans-serif;
}
footer {
    background-color:#212121;
    bottom:0;
    box-shadow: 0 -1px 2px #111111;
    display:block;
    height:70px;
    left:0;
    position:fixed;
    width:100%;
    z-index:100;
}
footer h2{
    font-size:22px;
    font-weight:normal;
    left:50%;
    margin-left:-400px;
    padding:22px 0;
    position:absolute;
    width:540px;
}
footer a.stuts,a.stuts:visited{
    border:none;
    text-decoration:none;
    color:#fcfcfc;
    font-size:14px;
    left:50%;
    line-height:31px;
    margin:23px 0 0 110px;
    position:absolute;
    top:0;
}
footer .stuts span {
    font-size:22px;
    font-weight:bold;
    margin-left:5px;
}
/* tutorial styles */
.container {
    color:#000;
    margin:20px auto;
    position:relative;
    width:730px;
}
.column1 {
    float:left;
    padding-right:10px;
    text-align:right;
    width:185px;
}
.column2 {
    float:left;
    width:500px;
    background-color:#888;
    padding:10px;
}
input[type=button] {
    margin:5px;
}

步骤3. JS (Step 3. JS)

As I mentioned in previous article – don`t need to publish whole code here again and again – we will publish only new functions. Here are new function for Horizontal Flip:

正如我在上一篇文章中提到的那样-不需要一次又一次地发布整个代码-我们将仅发布新功能。 这是水平翻转的新功能:

js / script.js (js/script.js)

function FlipHor() {
    func = 'flip_hor'; // last used function
    var imgd = context.getImageData(0, 0, iW, iH);
    var data = imgd.data;
    var imgd2 = context.getImageData(0, 0, iW, iH);
    var data2 = imgd2.data;
    for (var x = 0; x < iW/2; x++) {
        for (var y = 0; y < iH; y++) {
            var i = (y*iW + x);
            var i2 = (y*iW + ((iW-1)-x));
            var iP1 = data2[i*4]*p1+er;
            var iP2 = data2[i*4+1]*p2+eg;
            var iP3 = data2[i*4+2]*p3+eb;
            data[i*4]   = data[i2*4]*p1+er; // red
            data[i*4+1] = data[i2*4+1]*p2+eg; // green
            data[i*4+2] = data[i2*4+2]*p3+eb; // blue
            data[i2*4]   = iP1; // red
            data[i2*4+1] = iP2; // green
            data[i2*4+2] = iP3; // blue
        }
    }
    context.putImageData(imgd, 0, 0);
}

function FlipHor() {
    func = 'flip_hor'; // last used function
    var imgd = context.getImageData(0, 0, iW, iH);
    var data = imgd.data;
    var imgd2 = context.getImageData(0, 0, iW, iH);
    var data2 = imgd2.data;
    for (var x = 0; x < iW/2; x++) {
        for (var y = 0; y < iH; y++) {
            var i = (y*iW + x);
            var i2 = (y*iW + ((iW-1)-x));
            var iP1 = data2[i*4]*p1+er;
            var iP2 = data2[i*4+1]*p2+eg;
            var iP3 = data2[i*4+2]*p3+eb;
            data[i*4]   = data[i2*4]*p1+er; // red
            data[i*4+1] = data[i2*4+1]*p2+eg; // green
            data[i*4+2] = data[i2*4+2]*p3+eb; // blue
            data[i2*4]   = iP1; // red
            data[i2*4+1] = iP2; // green
            data[i2*4+2] = iP3; // blue
        }
    }
    context.putImageData(imgd, 0, 0);
}

现场演示

结论 (Conclusion)

Hope that today`s lesson was interesting for you. We added new effect to our application – Horizontal Flip. I will be glad to see your thanks and comments. Good luck!

希望今天的课程对您很有趣。 我们在应用程序中添加了新效果–水平翻转。 看到您的感谢和评论,我将非常高兴。 祝好运!

翻译自: https://www.script-tutorials.com/html5-image-effects-app-adding-horizontal-flip/

js image 翻转

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值