2016-10-22 5 views
0

내 페이지에 base64로 변환해야하는 이미지가로드되었습니다. 나는 현재 다음을 사용하고 있습니다 :내 페이지의 이미지를 base64로 변환

var c = document.createElement("canvas"); 
    var ctx = c.getContext("2d"); 
    var img = document.getElementById("additem_img"); 
    ctx.drawImage(img, 10, 10); 
    console.log(c.toDataURL()); 

다른 StackOverflow 질문에서 발견되었습니다. 64 기수, iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAAEYklEQVR4Xu3UAQkAAAwCwdm/9HI83BLIOdw5AgQIRAQWySkmAQIEzmB5AgIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg + UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg + UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg + UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg + UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg + UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKg, 이미지/PNG : base64로 문자열

데이터를 생성하는 것 나는 이것이 내가 할 수있는 모든 온라인 디코더를 사용하여 디코딩 할 때 IDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg + UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg + UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg + UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg + UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlACBB1YxAJfjJb2jAAAAAElFTkSuQmCC

, 나는 아무것도 얻을 수 없다. "additem_img"요소는 소스가 원격 웹 페이지의 이미지 인 이미지입니다. 캔버스와 base64를 사용하여 로컬 복사본을 만들고 싶습니다.

+0

wtf.headache :(당신이 나도 그 답이라고 생각, 위의 열한번째 줄에 모든 말에 동의 – Mahi

+0

그 또는 항상 정답 (42), – adeneo

+0

아마도 base64 문자열을 miscopied했을 것입니다. 동일한 시퀀스가 ​​9 번 발생합니다.하지만 실제로 base64 버전이 필요한 이유는 무엇입니까? – Kaiido

답변

0

이 시도 :

<img id="additem_img" src="image.png"> 

<script> 
    var c = document.createElement("canvas"); 
    var ctx = c.getContext("2d"); 

    var img = document.getElementById("additem_img"); 
    var w = img.width; 
    var h = img.height; 

    c.width = w; 
    c.height = h; 

    ctx.drawImage(img, 0, 0); 
    console.log(c.toDataURL()); 
</script> 
+0

왜 'clientWidth'입니까? – Kaiido

+0

'width'가 작동하는 것 같아요. 편집 됨 –

+0

"오염 된 캔버스를 내보낼 수 없습니다."라고 말합니다. ( –

관련 문제