é possível fazer com javascript?
Geralmente uma imagem que está sendo passada pela URL tem o armazenamento em algum lugar, certo? Então sim, é possível:
function toDataURL(url, callback) {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
var reader = new FileReader();
reader.onloadend = function() {
callback(reader.result);
}
reader.readAsDataURL(xhr.response);
};
xhr.open('GET', url);
xhr.responseType = 'blob';
xhr.send();
}
toDataURL('https://www.gravatar.com/avatar/d50c83cc0c6523b4d3f6085295c953e0', function(dataUrl) {
console.log('RESULT:', dataUrl)
})
Fonte: https://stackoverflow.com/questions/6150289/how-to-convert-image-into-base64-string-using-javascript