使用Jquery从客户端的Image中删除红眼

时间:2012-04-05 08:28:43

标签: php jquery image image-processing codeigniter-2

我在客户端的浏览器上呈现了以下html代码:

<div id="Div">
  <img src="myImage.jpg" id="myImage"/>
</div>

此特定图像由用户上传,然后显示在此处。 我需要允许我的用户从此图像中删除任何红眼。我想这样做没有任何回发(我在后面使用CodeIgniter)。在JQuery(或普通的Javascript)中是否有可用的库?如果不是什么可能是一个好方法?

1 个答案:

答案 0 :(得分:3)

红眼消除有很多事情发生了

一个。眼睛检测

B中。红眼区域映射

℃。填充颜​​色

d。起毛

电子。不透明

我的建议

如果不是Jquery的JOB甚至PHP都不会有效地消除红眼

可能的解决方案

  1. 获取一个Jquery区域选择脚本,用户可以在其中选择自己的红眼(使用此功能,您可以获得区域(X1,Y1,X2,Y2,高度,宽度)示例{{3} }

  2. 有一个简单的颜色选择器,他们可以选择替换颜色???默认可以是黑色

  3. 使用PHP中的imagemagickexec发送请求,以便进行消除红眼

  4. 您无法输出图片......

  5. 编辑1

    我能够帮助你为这个JOB获得一个现成的命令行工具

    http://odyniec.net/projects/imgareaselect/ http://www.fmwconcepts.com/imagemagick/redeye/index.php

    基本概念

    一个。创建输入图像的去饱和副本

    B中。执行模糊填充以创建遮罩图像

    ℃。使用蒙版图像将原稿与去饱和图像合成

    d。应用形态学关闭操作来填充蒙版中的镜面孔 然后创建一个差异操作来创建一个只有孔的新掩码

    电子。应用新蒙版以完全轻盈地合成上一个结果, 原始图像的零饱和度

    示例流程

    convert -quiet -regard-warnings "$infile" +repage "$tmpA1"
    convert $tmpA1 -modulate $light,$sat,100 $tmpA2
    proc=""
    for ((i=0; i<np; i++)); do
    proc="$proc matte ${pairArray[i]} floodfill"
    done
    convert $tmpA5 -fuzz $fuzz% -fill none -draw "$proc" \
    -fill "rgba(255,255,255,1)" +opaque "rgba(0,0,0,0)" \
    -fill "rgba(0,0,0,1)" -opaque "rgba(0,0,0,0)" \
    -alpha off -negate $tmpA3
    if [ "$dilate" = 0 ]; then
    dilation=""
    else
    dilation="-morphology dilate disk:$dilate"
    fi
    convert $tmpA1 $tmpA2 $tmpA3 -compose over -composite $tmpA2
    convert $tmpA3 \( +clone -morphology close disk:$rad $dilation \) \
    -compose difference -composite -auto-level \
    -negate -threshold 0 -negate $tmpA4
    convert $tmpA2 \( $tmpA1 -modulate 100,0,100 \) $tmpA4 \
    -compose over -composite $outfile
    

    我希望这会有所帮助

    由于

    :)