Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Jquery从客户端的图像中删除红眼_Php_Jquery_Image_Image Processing_Codeigniter 2 - Fatal编程技术网

Php 使用Jquery从客户端的图像中删除红眼

Php 使用Jquery从客户端的图像中删除红眼,php,jquery,image,image-processing,codeigniter-2,Php,Jquery,Image,Image Processing,Codeigniter 2,我在客户的浏览器上呈现了以下html代码: <div id="Div"> <img src="myImage.jpg" id="myImage"/> </div> 此特定图像由用户上传,然后显示在此处。 我需要允许我的用户删除此图像中的任何红眼。我不想做任何回发(我在后面使用CodeIgniter)。在JQuery(或纯Javascript)中是否有可用于此的库?如果不是的话,什么是好方法?去除红眼有很多方法 A.眼睛探测 B.红眼区域映射 C.填充

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

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

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

去除红眼有很多方法

A.眼睛探测

B.红眼区域映射

C.填充颜色

D.绒毛

E.不透明

我的建议

如果不是Jquery甚至PHP的工作,就无法有效地消除红眼

可能的解决方案

  • 获取一个Jquery区域选择脚本,用户可以在其中选择自己的红眼睛(使用该脚本,您可以获得区域(X1、Y1、X2、Y2、高度、宽度)示例

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

  • 使用PHP中的
    exec
    imagemagick
    发送红眼去除请求

  • 您无法输出您的图像

  • 编辑1

    我能够帮助您为这项工作准备一个现成的命令行工具

    http://www.fmwconcepts.com/imagemagick/redeye/index.php

    基本概念

    A.创建输入图像的去饱和副本

    B.执行模糊泛光填充以创建遮罩图像

    C.使用遮罩图像将原始图像与去饱和图像合成

    D.应用形态学闭合操作填充掩模中的镜面孔 然后创建一个差分操作来创建一个新的遮罩

    E.应用新遮罩,以完全亮度合成先前的结果, 原始图像的零饱和版本

    样品处理

    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
    
    convert-quiet-考虑警告“$infle”+repage“$tmpA1”
    转换$tmpA1-调制$light、$sat、100$tmpA2
    proc=“”
    
    为了((i=0;这是你正在尝试做的一件非常重要的事情。:D.那么我应该让PHP进行处理并只显示结果吗?下一步是什么…?使用javascript发射核导弹?严肃地说,是的,如果它像移除红眼一样复杂,你可能应该让服务器为你做图像处理。谢谢各位,我只是想知道哦,如果可能的话。现在我可以和平地使用服务器端方法:)非常感谢您的详细解释。这真的很有帮助。