Мне удалось заставить ваш код работать с очень небольшими изменениями.
Ваша самая большая проблема заключалась в том, что ваши переменные создавались еще до того, как в них что-то было, поэтому они в итоге оказались нулевыми.
Все, что я сделал, это переместил переменную обрезки и dwn в save.addEvenListener, и я удалил некоторые вещи, которые были установлены на dwn.
См. jsFiddle
save.addEventListener("click", function(e) {
var cropped = document.querySelector(".cropped");
//var dwn = document.querySelector(".cropper-crop-box");
var dwn = document.querySelector(".profile-pic");
e.preventDefault();
// get result to data uri
var imgSrc = cropper.getCroppedCanvas({
width: img_w.value // input value
}).toDataURL();
// remove hide class of img
cropped.classList.remove("hide");
img_result.classList.remove("hide");
// show image cropped
cropped.src = imgSrc;
dwn.src = imgSrc;
//dwn.classList.remove("hide");
//dwn.download = "imagename.png";
//dwn.setAttribute("href", imgSrc);
});