Text Methods on Canvas

Previous >    <Next  

Text Methods & Properties on Canvas

‎متدها وويژگي هاي متني در بوم

‎براي گنجاندن متن روي عنصر‎<canvas>‎ متدهاي و ويژگي هائي در جاوااسكريپت ‎وجود دارد، كه ميتوان اعمال متن در بوم مديريت كرد .اين متد ها ويژگي هاي جدول زير مخصوص ‎اعمال متن در بوم ميباشند، كه در اين صفحه درمورد آنها بحث ميگردد.

‎متد و ويژگي هاي متني

‎متد يا ويژگي ‎شرح
direction ‎مقدار ويژگيdirection راتنظيم ويابرگشت ميدهد .
fillText() ‎متن را روي بوم ترسيم و پرميكند.
font ‎ويژگي فونت متني رابراي شئcontext تنظيم ويا برگشت ميدهد .
measureText() ‎شئي رابرميگرداند كه شامل عرض متن مشحض شده است.
strokeText() ‎ترسيم متن روي بوم
textAlign ‎تراز را براي محتوي متني تنظيم ويا برگشت ميدهد.
textBaseline ‎خط مبناي متن مورد استفاده درهنگام ترسيم را تنظيم ويا برگشت ميدهد.

‎ويژگي ـCanvas direction

‎ويژگي‎direction‎ جهت ترسيم متن را مشخص ميكند .مقدار پيش فرض آن ‎inherit‎است كه ازdocument به ارث ميبرد .

‎مثال ـ جهت ترسيم متن از چپ براست‎(‎"ltr‎")‎ تنظيم ميشود .

ctx.font = "24px serif";
ctx.direction = "ltr";
ctx.fillText("W3Schools", 150, 50);
ctx.direction = "rtl";
ctx.fillText("W3Schools", 150, 60);

--(go to editor for change code and run)

‎توجه ـctx شئ دوبعدي است كه براي ترسيم روي بوم تعريف شده است .

‎فرمب استفاده ـSyntax

context.direction

‎مقادير ممكن ويژگي

‎مقدار ‎شرح
ltr ‎جهت ترسيم متن از چپ راست
rtl ‎جهت ترسيم متن از راست بچپ
inherit ‎از سند صفحه جاري بارث مي برد
‎جهت ترسيم مطابق ويژگيdir سند جاري

‎متدCanvas fillText()‎

‎متد‎fillText()‎‎ متن پرشده را روي بوم ترسيم ميكند .مقدار پيش فرض ويژگي ‎fillStyle‎كه مربوط به رنگ متن است ‎#000000‎ ميباشد . (solid black)

‎مثال ـ متن‎"Hellow World!‎"‎و‎"Big smile!‎"‎ روي بوم با متد‎filltext()‎‎ نوشته ‎مي شود.

const c = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");

ctx.font = "20px Georgia";
ctx.fillText("Hello World!", 10, 50);
ctx.font = "30px Verdana";

// Create gradient
const gradient = ctx.createLinearGradient(0, 0, c.width, 0);
gradient.addColorStop("0", "magenta");
gradient.addColorStop("0.5", "blue");
gradient.addColorStop("1.0", "red");

// Fill with gradient
ctx.fillStyle = gradient;
ctx.fillText("Big smile!", 10, 90);

--(go to editor for change code and run)

‎فرمت استفاده ـSyntax

context.fillText(text,x,y,maxwidt)

‎مقادير پارامترها ـParameter Values

‎پارامتر ‎شرح
text ‎متني كه روي بوم نوشته ميشود.
x ‎نقطه شروع نوشتن متن ـ مختصاتx
y ‎نقطه شروع نوشتن متن ـ مختصاتy
maxwidth ‎اختياريست ـ ماكزيمم عرض نوشتن برحسب پيكسل

‎متد هيچ مقداري برگشت نمي دهد.

‎ويژگيCanvas font

‎ويژگي‎font‎ فونت را براي ترسيم متن دربوم ،تنظسم يا برگشت ميدهد.

‎ويژگي فونت مشابه فرمت درCSS font property استفاده ميشود . مقدار پيش فرض آن ‎10px sans_serif‎است .

‎مثال ـ متن را با‎30px‎ در بوم مي نويسد .

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");

ctx.font = "30px Arial";
ctx.fillText("Hello World", 10, 50);

--(go to editor for change code and run)

‎فرمت استفاده ـSyntax

context.font="italic small_caps bold 12px arial"

‎توجه ـ رشته مربوط به ويژگي فونت در بالا نمونه اي از مقدار ويژگي فونت است.

‎مقادير ويژگي فونت

‎رشته مقداري فونت شامل بخش هائي به ترتيب جدول زيراست.

‎مقدار ‎شرح
font-style
  • normal
  • italic
  • oblique
font-vaiant
  • normal
  • smal-caps
font-weight
  • normal
  • bold
  • bolder
  • lighter
  • 100
  • 200
  • ‎و‎300,400,500,600,700,800,900
font-size ‎اندازه فونت به پيكسل
font-family ‎خانواده فونت

‎مواردي ديگري وجود دارد، اماجدول مطابق نمونه ارائه شده است

‎متدCanvas measureText()‎

‎متد‎measureText()‎‎ يك شئ را برميگرداند كه شامل عرض متن مشخص شده، بر ‎حسب پيكسل است.

‎نكته ـ در صورت نياز بدانستن عرض متن ، قبل از نوشتن روي بوم ، ازاين روش استفاده كنيد.

context.measureText(text).width

‎مثال ـ قبل از نوشتن روي بوم عرض متن را بررسي كنيد.

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.font = "30px Arial";
let txt = "Hello World"
ctx.fillText("width:" + ctx.measureText(txt).width, 10, 50)
ctx.fillText(txt, 10, 100);

--(go to editor for change code and run)

‎متدCanvas strokeText()‎

‎متد‎strokeText()‎‎ متني را روي بوم ترسيم ميكند.پيش فرض ‎stroeStyle‎ ‎براي پركردن متن ترسيمي، رنگ‎(solid black) 000000#‎ است .

‎نكته ـ ويژگيfont را براي مشخص نمودن فونت وانداره فونت، و ويژگيstrokeStyle را در ‎رنگ‎/‎ گراديان براي متن خوان استفاده نمائيد.

‎مثال ـ نوشتن‎"Hello World!‎"‎ و‎"Big Smile!‎"‎ باگراديان روي بوم با استفاده ازمتد strokeText()

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");

ctx.font = "20px Georgia";
ctx.strokeText("Hello World!", 10, 50);

ctx.font = "30px Verdana";

// Create gradient
const gradient = ctx.createLinearGradient(0, 0, c.width, 0);
gradient.addColorStop("0", "magenta");
gradient.addColorStop("0.5", "blue");
gradient.addColorStop("1.0", "red");

// Fill with gradient
ctx.strokeStyle = gradient;
ctx.strokeText("Big smile!", 10, 90);

--(go to editor for change code and run)

‎فرمت استفاده ـSyntax

context.strokeText(text,x,y,maxwidt)

‎مقادير پارامترها ـParameter Values

‎پارامتر ‎شرح
text ‎متني كه روي بوم نوشته ميشود.
x ‎نقطه شروع نوشتن متن ـ مختصاتx
y ‎نقطه شروع نوشتن متن ـ مختصاتy
maxwidth ‎اختياريست ـ ماكزيمم عرض نوشتن برحسب پيكسل

‎ويژگيCanvas textAlign

‎ويژگي‎textAlin‎ تراز فعلي را براي محتوي متني ، باتوجه به نقطه لنگر ، تنظيم يا ‎برگشت ميدهد .مقدار پيش فرض آن‎start‎ است .

‎مثال ـ يك خط قرمز در موقعيت‎150‎ ايجاد ميشود .اين خط تراز براي تمام متن است . ‎تراز متون را در اجرا ملاحظه فرمائيد.

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");

// Create a red line in position 150
ctx.strokeStyle = "red";
ctx.moveTo(150, 20);
ctx.lineTo(150, 170);
ctx.stroke();

ctx.font = "15px Arial";

// Show the different textAlign values
ctx.textAlign = "start";
ctx.fillText("textAlign = start", 150, 60);
ctx.textAlign = "end";
ctx.fillText("textAlign = end", 150, 80);
ctx.textAlign = "left";
ctx.fillText("textAlign = left", 150, 100);
ctx.textAlign = "center";
ctx.fillText("textAlign = center", 150, 120);
ctx.textAlign = "right";
ctx.fillText("textAlign = right", 150, 140);

--(go to editor for change code and run)

‎فرمت استفاده ـSyntax

context.textAlign="center|end|left|right|start"

‎مقادير پارامتر ـParameter Values

‎مقدار ‎شرح
start ‎شروع متن در موقعيت تراز
end ‎پايان متن در موقعيت تراز
center ‎وسط متن در موقعيت تراز
left ‎سمت چپ متن در موقعيت تراز
right ‎شمت راست متن در موقعيت تراز

‎ويژگيCanvas textBaseLine

‎ويژگي‎textBaseLine‎ خط پايه متن مورد استفاده در هنگام ترسيم را تنظيم يا ‎برگشت ميدهد .مقدار پيش فرض آن‎alphabetic‎ است .

‎براي خطوط پايه پشتيباني شده توسط‎textBaseline‎ تصوير زيرا رامشاهده نمائيد .

textBaseline illustration

‎مثال ـ خطي قرمز در‎y=100‎ كشيده ميشود .سپس كلماتي با مقادير متفاوت textBaseline ‎در خط‎y=100‎نوشته شده است .

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");

//Draw a red line at y=100
ctx.strokeStyle = "red";
ctx.moveTo(5, 100);
ctx.lineTo(395, 100);
ctx.stroke();

ctx.font = "20px Arial"

//Place each word at y=100 with different textBaseline values
ctx.textBaseline = "top";
ctx.fillText("Top", 5, 100);
ctx.textBaseline = "bottom";
ctx.fillText("Bottom", 50, 100);
ctx.textBaseline = "middle";
ctx.fillText("Middle", 120, 100);
ctx.textBaseline = "alphabetic";
ctx.fillText("Alphabetic", 190, 100);
ctx.textBaseline = "hanging";
ctx.fillText("Hanging", 290, 100);

--(go to editor for change code and run)

‎فرمت استفاده ـSyntax

context.textBaseLine="alphabetic|top|hanging|middle|ideoghaphic|botton"

‎مقادير ويژگي ـProperty Values

‎مقدار ‎شرح
alphabetic ‎خط پايه نرمال الفبائي
top ‎بالاي مربعem
hanging ‎خط پايه آويزان
middle ‎وسط مربعem
ideographic ‎خط پايه ايدئوگرافيك
bottom ‎پائين جعبه مرزي

Previous >    <Next