限时优惠活动
亲爱的苦力吧用户,我们为了回馈新老用户一直以来的鼎力支持,即日起(2025-02-06至2025-03-06)凡是购买苦力吧VIP/充值K币的新老用户,都直接可获得买一送一的优惠馈赠。例如:购买一个月的VIP会员可直接获得两个月的VIP会员;充值100K币可直接获得200K币,以此类推!有任何疑问可联系在线客服,感谢各位用户对苦力吧素材的信任与厚爱,我们将一如既往的给大家上新更多优质的素材源码,祝大家开工大吉、工作顺利、心想事成。

jquery模拟Photoshop的色调曲线操作特效代码

所属分类: 网页特效-其它&杂项    2023-08-13 09:59:10

jquery模拟Photoshop的色调曲线操作特效代码 ie兼容6
 查看演示  登录后下载 温馨提示
登录会员即可享受免费下载
 我要建站

jquery模拟Photoshop的色调曲线操作特效代码(共11个文件)

    • index.html
    • index.html

使用方法

  • code
  • source
  1. $('.iocurve').each(function(){
  2. var $this = $(this);
  3. var $input = $this.find('.input');
  4. var $curve = $this.find('.curve div');
  5. var $output = $this.find('.output');
  6. var $curvature = $curve.next('input');
  7. var option = $curve.data('option');
  8. $input.text(function(){
  9. var x0 = option.x ? option.x[0] : 0;
  10. var x1 = option.x ? option.x[1] : 255;
  11. var y0 = option.y ? option.y[0] : 0;
  12. var y1 = option.y ? option.y[1] : 255;
  13. var dx = option.dx || 1;
  14. var rangeX = x1 - x0;
  15. var count = (rangeX / dx)|0;
  16. var dy = (y1 - y0) / count;
  17. var a = new Array(count);
  18. for( var i=count; i--; ) a[i] = y0 + dy * i;
  19. a[count] = y1;
  20. return a;
  21. }().join('\r\n'));
  22. $curve.on('output', function(ev, data){
  23. for( var i=data.length; i--; ) data[i] = Math.round(data[i]);
  24. $output.text(data.join('\r\n'));
  25. });
  26. if( option.histogram ) option.histogram.data = randomHistogram(option);
  27. $curve.iocurve(option);
  28. $input.on('scroll', function(){
  29. $output.scrollTop($input.scrollTop());
  30. });
  31. $output.on('scroll', function(){
  32. $input.scrollTop($output.scrollTop());
  33. });
  34. if( $curvature.length ) $curvature.on('input', function(){
  35. var v = this.value;
  36. $curve.trigger('option', [{ curvature: v }]);
  37. });
  38. function randomHistogram( option ){
  39. var rangeX = option.x[1] - option.x[0];
  40. var count = 1 + (rangeX / option.dx)|0;
  41. var data = [];
  42. for( var i=count; i--; ) data[i] = Math.random();
  43. return data;
  44. }
  45. });
  46. $('.example .picture-edit').each(function(){
  47. var $canvas = $(this).find('canvas');
  48. var $curve = $(this).find('.curve');
  49. var canvas = $canvas[0];
  50. var context = canvas.getContext('2d');
  51. var imgdata0;
  52. var imgdata1;
  53. var image = new Image();
  54. image.onload = function(){
  55. canvas.width = image.width;
  56. canvas.height = image.height;
  57. context.drawImage(image, 0, 0);
  58. imgdata0 = context.getImageData(0, 0, canvas.width, canvas.height);
  59. imgdata1 = context.createImageData(canvas.width, canvas.height);
  60. };
  61. image.src = $canvas.data('src');
  62. $curve.iocurve().on('output', function(ev, data){
  63. if( !imgdata1 ) return;
  64. for( var i=data.length; i--; ) data[i] = Math.round(data[i]);
  65. var src = imgdata0.data;
  66. var dst = imgdata1.data;
  67. for( var i=0; i<src.length; i+=4 ){
  68. dst[i] = data[src[i]];
  69. dst[i+1] = data[src[i+1]];
  70. dst[i+2] = data[src[i+2]];
  71. dst[i+3] = src[i+3];
  72. }
  73. context.putImageData(imgdata1, 0, 0);
  74. });
  75. });
$('.iocurve').each(function(){
    var $this = $(this);
    var $input = $this.find('.input');
    var $curve = $this.find('.curve div');
    var $output = $this.find('.output');
    var $curvature = $curve.next('input');
    var option = $curve.data('option');
    $input.text(function(){
        var x0 = option.x ? option.x[0] : 0;
        var x1 = option.x ? option.x[1] : 255;
        var y0 = option.y ? option.y[0] : 0;
        var y1 = option.y ? option.y[1] : 255;
        var dx = option.dx || 1;
        var rangeX = x1 - x0;
        var count = (rangeX / dx)|0;
        var dy = (y1 - y0) / count;
        var a = new Array(count);
        for( var i=count; i--; ) a[i] = y0 + dy * i;
        a[count] = y1;
        return a;
    }().join('\r\n'));
    $curve.on('output', function(ev, data){
        for( var i=data.length; i--; ) data[i] = Math.round(data[i]);
        $output.text(data.join('\r\n'));
    });
    if( option.histogram ) option.histogram.data = randomHistogram(option);
    $curve.iocurve(option);
    $input.on('scroll', function(){
        $output.scrollTop($input.scrollTop());
    });
    $output.on('scroll', function(){
        $input.scrollTop($output.scrollTop());
    });
    if( $curvature.length ) $curvature.on('input', function(){
        var v = this.value;
        $curve.trigger('option', [{ curvature: v }]);
    });
    function randomHistogram( option ){
        var rangeX = option.x[1] - option.x[0];
        var count = 1 + (rangeX / option.dx)|0;
        var data = [];
        for( var i=count; i--; ) data[i] = Math.random();
        return data;
    }
});
$('.example .picture-edit').each(function(){
    var $canvas = $(this).find('canvas');
    var $curve = $(this).find('.curve');
    var canvas = $canvas[0];
    var context = canvas.getContext('2d');
    var imgdata0;
    var imgdata1;
    var image = new Image();
    image.onload = function(){
        canvas.width = image.width;
        canvas.height = image.height;
        context.drawImage(image, 0, 0);
        imgdata0 = context.getImageData(0, 0, canvas.width, canvas.height);
        imgdata1 = context.createImageData(canvas.width, canvas.height);
    };
    image.src = $canvas.data('src');
    $curve.iocurve().on('output', function(ev, data){
        if( !imgdata1 ) return;
        for( var i=data.length; i--; ) data[i] = Math.round(data[i]);
        var src = imgdata0.data;
        var dst = imgdata1.data;
        for( var i=0; i<src.length; i+=4 ){
            dst[i] = data[src[i]];
            dst[i+1] = data[src[i+1]];
            dst[i+2] = data[src[i+2]];
            dst[i+3] = src[i+3];
        }
        context.putImageData(imgdata1, 0, 0);
    });
});

站长提示:
1. 苦力吧素材官方QQ群:950875342
2. 平台上所有素材资源,需注册登录会员方能正常下载。
3. 会员用户积极反馈网站、素材资源BUG或错误问题,每次奖励2K币
4. PHP源码类素材,如需协助安装调试,或你有二次开发需求,可联系苦力吧客服。
5. 付费素材资源,需充值后方能下载,如有任何疑问可直接联系苦力吧客服
相关资源 / 其它&杂项

jquery轻量级倒数计时器插件

同一个页面允许多个倒计时,天数 - 小时 - 分钟 - 秒数。
  其它&杂项
 4405  0

jquery列表数据可按shift/ctrl键实现多选功能插件

一款支持shift键多选功能插件,使用户可以一键选中所有相关的复选框和/或使用CTRL和Shift键选择多个复选框。
  其它&杂项
 8347  0

jquery轻量级JSON数据查看器插件

一个简单快速的JSON查看器插件,可将复杂的JSON数据输出为嵌套的、可折叠的、可读性好的树结构导航菜单。
  其它&杂项
 5520  0

jquery从JSON数据中获取的数据时间线特效插件

一个响应式时间轴插件,可从JSON数据中获取事件(故事、活动等),并根据年份自动垂直显示相应输的图文内容。
  其它&杂项
 2316  0

评论数(0) 回复有机会获得K币 用户协议

^_^ 还没有人评论,快来抢个沙发!
😀
  • 😀
  • 😊
  • 😂
  • 😍
  • 😑
  • 😷
  • 😵
  • 😛
  • 😣
  • 😱
  • 😋
  • 😎
  • 😵
  • 😕
  • 😶
  • 😚
  • 😜
  • 😭
发表评论