2016-03-23 17 views
0

html2canvas kullanarak bir div yakalamaya çalışıyorum ve bir .png dosyası olarak kaydedin ve işe yarıyor! Kaydet div olarak png - html2canvas - bulanık görüntü kalitesi

(sadece örnek window.open kullanarak basitleştirmek için - aynı kalitede sorunu)

hedeflenen div içinde görüntülerin görüntü keskinliği/kalite oldukça kötü olduğunu ancak. Görüntü kalitesini/keskinliğini nasıl geliştireceğimi tam olarak bilmiyorum. Baska öneri ?

saveAsPNG fonksiyonu: Ne html2canvas yapar değil

saveAsPNG = function(id) { 
var target = document.getElementById(id); 

    html2canvas(target, { 
    onrendered: function(canvas) { 
     var data = canvas.toDataURL("image/png", 1); 
     window.open(data);  
    } 
    }); 
}; 
+0

Her şeyden önce, 'image/png' yararsızdır çünkü 'toDataURL' için varsayılan değerdir. Ve 'encoderOptions' (2. parametre) sadece' image/jpeg' ve 'image/webp' için kullanılır. Sorunu çözmez ancak kodu "düzeltir". –

+0

Bu satırı 'toDataURL 'ile' document.body.appendChild (canvas); Ve tuval oluşturma da bulanık. Bu yüzden html2canvas'tan geliyor ve kaliteyi iyileştirmek için seçenek yok. –

+0

Ayrıca, bu cevabı buldum: http://stackoverflow.com/a/31726736/5119765 –

cevap

0

"aslında" bir ekran görüntüsü alma ama beyanda. Bu nedenle, sayfadaki mevcut bilgilere dayanarak ekran görüntüsünü oluşturur.

Belki de bulanık görüntüleri çekmemek için bir seçenek kullanmaktır.

https://github.com/ivoviz/feedback

Bu sayfanın belli bir bölümüne ekran görüntüsü almak için izin verir html2canvas dayalı bir jQuery eklentisi vardır. Bunu bir deneyin :)

+0

teşekkürler, kontrol edeceğim :)! –