Recadrage de l'Image Téléchargée à l'aide de Jcrop

Je suis en train d'essayer de recadrer une image téléchargée à l'aide de Jcrop. Mon intention est de recadrer l'image lorsque l'utilisateur de télécharger. Je n'ai pas besoin de stocker l'utilisateur de télécharger l'image sur le serveur. Mais, je dois stocker uniquement la partie de l'image de l'utilisateur sélectionne via Jcrop pour le serveur. Voici la violon lien pour le problème

J'ai utilisé le code suivant:

HTML:

<form id="form1">
    <input type='file' id="imgInp" />
    <img id="blah" class="crop" src="#" alt="your image" />
    <input type="hidden" id="x" name="x" />
        <input type="hidden" id="y" name="y" />
        <input type="hidden" id="w" name="w" />
        <input type="hidden" id="h" name="h" />
</form>

CSS:

<style>
#blah {
    background-color: #FFF;
    width: 500px;
    height: 330px;
    font-size: 24px;
    display: block;
  }
</style>

Js:

function readURL(input) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();

            reader.onload = function (e) {
                $('#blah').attr('src', e.target.result);
            }

            reader.readAsDataURL(input.files[0]);
        }
    }

    $("#imgInp").change(function(){
        console.log(this);
        readURL(this);
         $(function(){

    $('.crop').Jcrop({

      onSelect: updateCoords,

            bgOpacity:   .4,
            setSelect:   [ 100, 100, 50, 50 ],
            aspectRatio: 16 / 9
    });

  });
    });

  function updateCoords(c)
  {
    console.log(c);
    $('#x').val(c.x);
    $('#y').val(c.y);
    $('#w').val(c.w);
    $('#h').val(c.h);
  };

J'ai essayé comme, après téléchargement de l'image, la même image est utilisée pour JCrop, de sorte que je peux obtenir les coordonnées des valeurs pour générer le reste de l'image. Mon problème maintenant est ceci: Lors du téléchargement, j'obtiens la couleur noire dans l'image spot plutôt que l'image téléchargée. Quelqu'un peut-il regarder et de trouver ce qui n'allait pas avec le code?

Je pense que vous pouvez utiliser une toile et d'obtenir les données d'image de la toile, w3schools.com/tags/canvas_getimagedata.asp, je ne sais pas si jcrop utilise une toile, peut-être vous avez besoin de quelque chose de différent que jcrop si elle ne l'utilise pas.

OriginalL'auteur Ganesh Babu | 2014-04-09