Ben şöyle ayrı tuvaline bazı metin oluşturmak için çalışılıyor:Metin Yapımı HTML5 Canvas'a uygun mu?
var tmpCanvas = document.createElement("canvas");
var tmpContext = tmpCanvas.getContext('2d');
tmpContext.textAlign = 'center';
tmpContext.font = size + 'px';
tmpCanvas.width = tmpContext.measureText(txt).width;
tmpCanvas.height = size;
tmpContext.fillStyle = "#000";
tmpContext.fillRect(0, 0, tmpCanvas.width, tmpCanvas.height);
tmpContext.fillStyle = color;
tmpContext.fillText(txt, tmpCanvas.width/2, tmpCanvas.height/2);
Bu tuval sonra ana tuvalin merkeze varılır: Bunu yapıyorum
context.drawImage(cachedText, (d_canvas.width/2) - (cachedText.width/2), (d_canvas.height/2) - (cachedText.width/2), cachedText.width, cachedText.height);
, metin çünkü Bu çizilen oldukça karmaşıktır, bu yüzden çizim işlemini birkaç kez tekrarlamak istemiyorum. Ancak, sorun, kanvas boyutunu metin boyutuna eşit olarak ayarladığım gerçeğine rağmen, metnin tuvalden daha küçük olması ve ortada olmaması. Yukarıda denediğim gibi önceden oluşturulmuş bir metin içeren bir tuval/resim nesnesini nasıl oluşturabilirim? Olarak çıkıyor http://jsfiddle.net/x4t1vjam/
Boyutu 200 olarak değiştirdiğimde, gerçekten çok kötü görünüyor. Kanvasın yüksekliği değişiyor gibi görünüyor, ancak metin aynı kalıyor. – user3024235
Boyutu, boyut olarak ayarladığınız için, burada 'tmpCanvas.height = size' - Burada birkaç hata var. Diğerlerinden geçmeme izin verin ve cevabımı güncelleyin. – Lewis
Evet, ancak metin de o boyuta kadar ölçeklenmelidir, çünkü yazı tipi boyutunu buna göre ayarladım. sağ? – user3024235