এইচটিএমএল 5 এ আমি কীভাবে স্বচ্ছ ক্যানভাস তৈরি করব?


123

আমি কীভাবে একটি ক্যানভাসকে স্বচ্ছ করতে পারি? আমার দরকার কারণ আমি একে অপরের উপরে দুটি ক্যানভ্যাস রাখতে চাই।

উত্তর:


193

ক্যানভ্যাসগুলি ডিফল্টরূপে স্বচ্ছ।

পৃষ্ঠার পটভূমি চিত্রটি সেট করার চেষ্টা করুন এবং তারপরে এটি একটি ক্যানভাস রাখুন। যদি ক্যানভাসে কিছু আঁকেন না, আপনি পৃষ্ঠার পটভূমি পুরোপুরি দেখতে পাবেন।

একটি কাঁচের প্লেটে পেইন্টিংয়ের মতো ক্যানভাসটি ভাবেন।


6
মোবাইলে ক্যানভাসের একটি কালো পটভূমি রয়েছে তাই লেয়ারিং ক্যানভ্যাসগুলি সেখানে কাজ করে না। (কমপক্ষে অ্যান্ড্রয়েডের জন্য ক্রোমে)
নিকোলিয়াস

11
যথারীতি মানদণ্ডের জন্য অনেক কিছুই।
ট্রায়ঙ্কো

6
আমি মনে করি এই উত্তরগুলির বিন্দুটি অনুপস্থিত। উপরের প্রশ্নের মতোই, আমি দুটি স্তরযুক্ত ক্যানভাস রাখতে চাই: নীচের অংশে একটি স্থির চিত্র রয়েছে তবে শীর্ষেরটিতে অ্যানিমেটেড স্প্রাইট থাকবে es এই শীর্ষ স্তরটির স্বচ্ছ পটভূমি থাকা দরকার, তবে প্রতিটি অ্যানিমেশন ফ্রেম দিয়ে 'সাফ' করা এবং পুনরায় নকশা করতে হবে। হ্যাঁ, এটি ডিফল্ট হিসাবে স্বচ্ছ শুরু হয়, তবে আপনি কীভাবে এটি স্বচ্ছ এবং প্রতিটি নতুন অ্যানিমেশন ফ্রেমের শুরুতে পুনরায় সেট করবেন?
জে স্প্রেগ

3
এই কিভাবে ক্যানভাস যে কোন সময় পরিষ্কার হয় stackoverflow.com/questions/2142535/...
Omiod

যেহেতু আপনি প্রচুর উপকার পেয়েছেন আপনি কি কমপক্ষে প্রশ্নের উত্তর দিতে পারবেন? আপনি কীভাবে একটি স্বচ্ছ ক্যানভাসকে স্বচ্ছ করবেন?
ডিডিডি

48

আমি বিশ্বাস করি যে আমি ঠিক যা করার চেষ্টা করেছি আপনি ঠিক সেভাবে চেষ্টা করার চেষ্টা করছেন: আমি দুটি স্ট্যাকড ক্যানভ্যাস চাই ... নীচের অংশে একটি স্থির চিত্র রয়েছে এবং উপরের অংশে অ্যানিমেটেড স্প্রিট রয়েছে। অ্যানিমেশনটির কারণে, প্রতিটি নতুন ফ্রেমের রেন্ডারিংয়ের সময় আপনার শীর্ষ স্তরের পটভূমি স্বচ্ছ হতে হবে। অবশেষে আমি উত্তরটি পেয়েছি: এটি গ্লোবালআল্ফা ব্যবহার করছে না, এবং এটি আরজিবা () রঙ ব্যবহার করছে না। সহজ, কার্যকর উত্তর:

context.clearRect(0,0,width,height);

45

যদি আপনি কোনও নির্দিষ্টকে <canvas id="canvasID">সর্বদা স্বচ্ছ হতে চান তবে আপনাকে কেবল সেট করতে হবে

#canvasID{
    opacity:0.5;
}

পরিবর্তে, আপনি যদি ক্যানভাস অঞ্চলের অভ্যন্তরের কিছু নির্দিষ্ট উপাদানগুলি স্বচ্ছ হতে চান তবে আপনার আঁকানোর সময় স্বচ্ছতা নির্ধারণ করতে হবে, অর্থাত্‍

context.fillStyle = "rgba(0, 0, 200, 0.5)";

আহ, আমি ফিল স্টাইলের স্বচ্ছতা খুঁজছিলাম। ধন্যবাদ!
কর্মী

3
এফওয়াইআই: opacityক্যানভাসে কোনও পটভূমি ভরাট হলে পরিবর্তনগুলির কোনও প্রভাব থাকবে না।
অ্যাডাম এবারলিন

3

স্রেফ ক্যানভাসের পটভূমি সেট করুন to

#canvasID{
    background:transparent;
}

1
এই উত্তরটি সমস্ত পরিস্থিতিতে কাজ করে না, প্রসঙ্গের বিষয়। ক্লেয়াররেট (0, 0, প্রস্থ, উচ্চতা) আমার জন্য কাজ করে এমন সমাধান হল
দিমিত্রি

2

তৃতীয় ক্যানভাসে আপনার দুটি ক্যানভাসে রঙ করুন।

আমারও একই সমস্যা ছিল এবং এখানকার কোনও সমাধানই আমার সমস্যার সমাধান করেনি। আমার উপরে একটি স্বচ্ছ ক্যানভাস ছিল যার উপরে অন্য স্বচ্ছ ক্যানভাস রয়েছে। অস্বচ্ছ ক্যানভাসটি সম্পূর্ণ অদৃশ্য ছিল তবে পৃষ্ঠার মূল পৃষ্ঠার পটভূমি দৃশ্যমান ছিল। উপরে স্বচ্ছ ক্যানভাস থেকে অঙ্কিত দৃশ্যমান ছিল যখন এর নীচে অস্বচ্ছ ক্যানভাসটি ছিল না।


0

শেষ উত্তরটি মন্তব্য করতে পারবেন না তবে সমাধানটি তুলনামূলকভাবে সহজ। কেবল আপনার অস্বচ্ছ ক্যানভাসের পটভূমি রঙ সেট করুন:

#canvas1 { background-color: black; } //opaque canvas
#canvas2 { ... } //transparent canvas

আমি নিশ্চিত নই তবে দেখে মনে হচ্ছে পটভূমির রঙটি দেহ থেকে স্বচ্ছ হিসাবে উত্তরাধিকার সূত্রে প্রাপ্ত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.