উত্তর:
canvas
DOM উপাদান রয়েছে .height
এবং .width
করতে বৈশিষ্ট্য যে মিলা height="…"
এবং width="…"
বৈশিষ্ট্যাবলী। আপনার ক্যানভাসের আকার পরিবর্তন করতে জাভাস্ক্রিপ্ট কোডে সংখ্যাসূচক মানগুলিতে সেট করুন। উদাহরণ স্বরূপ:
var canvas = document.getElementsByTagName('canvas')[0];
canvas.width = 800;
canvas.height = 600;
নোট করুন যে এটি ক্যানভাস সাফ করে, যদিও ক্যানভাস ctx.clearRect( 0, 0, ctx.canvas.width, ctx.canvas.height);
পুরোপুরি সাফ না করে এমন ব্রাউজারগুলি পরিচালনা করতে আপনার অনুসরণ করা উচিত । আকার পরিবর্তনের পরে আপনাকে যে কোনও সামগ্রী প্রদর্শিত হবে তা পুনরায় আঁকতে হবে।
আরও নোট করুন যে উচ্চতা এবং প্রস্থ হ'ল অঙ্কনের জন্য ব্যবহৃত লজিকাল ক্যানভাস মাত্রা এবং সিএসএস বৈশিষ্ট্যগুলি থেকে পৃথক । আপনি যদি সিএসএসের বৈশিষ্ট্যগুলি সেট না করেন তবে ক্যানভাসের অভ্যন্তরীণ আকারটি এর প্রদর্শনের আকার হিসাবে ব্যবহৃত হবে; আপনি যদি সিএসএস বৈশিষ্ট্যগুলি সেট করেন এবং সেগুলি ক্যানভাসের মাত্রা থেকে পৃথক হয় তবে আপনার সামগ্রী ব্রাউজারে স্কেল করা হবে। উদাহরণ স্বরূপ:style.height
style.width
// Make a canvas that has a blurry pixelated zoom-in
// with each canvas pixel drawn showing as roughly 2x2 on screen
canvas.width = 400;
canvas.height = 300;
canvas.style.width = '800px';
canvas.style.height = '600px';
4x দ্বারা জুম করা ক্যানভাসের এই লাইভ উদাহরণটি দেখুন ।
একটি ক্যানভাসের 2 টি আকার রয়েছে, ক্যানভাসে পিক্সেলের মাত্রা রয়েছে (এটি ব্যাকিংস্টোর বা ড্রইংবফার) এবং প্রদর্শন আকার। পিক্সেল সংখ্যা ক্যানভাস বৈশিষ্ট্য ব্যবহার করে সেট করা হয়। এইচটিএমএলে
<canvas width="400" height="300"></canvas>
বা জাভাস্ক্রিপ্টে
someCanvasElement.width = 400;
someCanvasElement.height = 300;
এর থেকে পৃথক হ'ল ক্যানভাসের সিএসএস স্টাইলের প্রস্থ এবং উচ্চতা
সিএসএসে
canvas { /* or some other selector */
width: 500px;
height: 400px;
}
বা জাভাস্ক্রিপ্টে
canvas.style.width = "500px";
canvas.style.height = "400px";
ক্যানভাস 1x1 পিক্সেল তৈরির পক্ষে যুক্তিযুক্ত সর্বোত্তম উপায় হ'ল সিএসএস ব্যবহার করার জন্য সিএসএস ব্যবহার করুন এবং তারপরে পিক্সেলের সংখ্যার সাথে সামঞ্জস্য করার জন্য একটি ছোট্ট জাভাস্ক্রিপ্ট লিখুন।
function resizeCanvasToDisplaySize(canvas) {
// look up the size the canvas is being displayed
const width = canvas.clientWidth;
const height = canvas.clientHeight;
// If it's resolution does not match change it
if (canvas.width !== width || canvas.height !== height) {
canvas.width = width;
canvas.height = height;
return true;
}
return false;
}
কেন এটি সেরা উপায়? কারণ এটি কোনও কোড পরিবর্তন না করে বেশিরভাগ ক্ষেত্রেই কাজ করে।
কারণ আমি বৈশিষ্ট্যগুলি সেট করি নি যা প্রতিটি নমুনায় পরিবর্তিত হয় কেবল সিএসএস (যতক্ষণ না ক্যানভাস সম্পর্কিত)
মন্তব্য:
আপনাকে অনেক ধন্যবাদ! অবশেষে আমি এই কোড দিয়ে অস্পষ্ট পিক্সেল সমস্যাটি সমাধান করেছি:
<canvas id="graph" width=326 height=240 style='width:326px;height:240px'></canvas>
'হাফ-পিক্সেল' যুক্ত করার সাথে সাথে লাইনগুলি আনব্লু করার কৌশলটি ঘটায়।
$('#mycanvas').attr({width:400,height:300}).css({width:'800px',height:'600px'});
আপনি যদি ভিজ্যুয়াল আকারটি পিক্সেল আকারের সমান হতে চান তবে শৈলীগুলি কখনও সেট করবেন না, কেবলমাত্র বৈশিষ্ট্যগুলি।