Coder Social home page Coder Social logo

Comments (8)

vivekdoshi2 avatar vivekdoshi2 commented on June 8, 2024 2

Found Solution :

All we need is to call destroy();

this.angularCropper.cropper.destroy();

Demo : https://stackblitz.com/edit/angular-cropperjs-replace-demo

from angular-cropperjs.

matheusdavidson avatar matheusdavidson commented on June 8, 2024 1

i have confirmed the problem with the replace method, will need more time to find a fix. What you could do in the meantime is destroy angular-cropper html with ngIf, change the image and place the element again. Thats the way i do in https://github.com/matheusdavidson/angular-upcrop

from angular-cropperjs.

matheusdavidson avatar matheusdavidson commented on June 8, 2024

I'll make a test, give me a moment.

from angular-cropperjs.

cihad avatar cihad commented on June 8, 2024

Thank you for your interest. I will try.

from angular-cropperjs.

mariuszr2404 avatar mariuszr2404 commented on June 8, 2024

This is still bug? Exist some way to avoid this problem?

from angular-cropperjs.

DanielEberl avatar DanielEberl commented on June 8, 2024

onFileAdded(event){

const angularCropper = this.angularCropper;

const input = event.target;

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

    reader.onload = function (e) {
      **angularCropper.cropper.destroy();
      angularCropper.imageUrl = e.target.result;**
    };
    reader.readAsDataURL(input.files[0]);
  }

}

This is my solution for now, hope it stays stable.
When I do replace, it creates another instance below the existing one.

from angular-cropperjs.

m-ghaoui avatar m-ghaoui commented on June 8, 2024

This seems to work for me:

readFile(file: File) {
const myReader = new FileReader();

myReader.onloadend = (loadEvent: any) => {
    this.angularCropper.imageUrl = loadEvent.target.result;

    this.angularCropper.cropper.destroy();
};

myReader.readAsDataURL(file);
}

Am I doing this right? The call to .destroy() reloads the cropper.

If I look at the source code of https://fengyuanchen.github.io/cropperjs/ I see this:

if (/^image\/\w+/.test(file.type)) {
    uploadedImageType = file.type;
    uploadedImageName = file.name;

    if (uploadedImageURL) {
    URL.revokeObjectURL(uploadedImageURL);
    }

    image.src = uploadedImageURL = URL.createObjectURL(file);
    cropper.destroy();
    cropper = new Cropper(image, options);
    inputImage.value = null;
} else {
    window.alert('Please choose an image file.');
}

As you can see, a new Cropper gets created after the old one is destroyed.

So my question is: is calling .destroy() enough? It works perfectly BTW

from angular-cropperjs.

MaccabeeY avatar MaccabeeY commented on June 8, 2024

This may not be an issue with this library but with cropperjs itself, see: fengyuanchen/cropperjs#617

from angular-cropperjs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.