অক্ষরে গর্ত পূরণ করুন


18

কখনও কখনও যখন আমি বিরক্ত হই তখন আমি কিছু পাঠ্য গ্রহণ করি এবং বর্ণগুলিতে "গর্ত" পূর্ণ করি। তবে আপনি সবচেয়ে বিরক্তিকর জিনিসটি কি গর্তগুলি পূরণ করছেন না? আমি মনে করি আমাদের এটি স্বয়ংক্রিয় হওয়া উচিত , যাতে আমরা আমাদের সময়কে আরও ভালভাবে ব্যবহার করতে পারি।

স্ট্যান্ডার্ড বিধি প্রযোজ্য।

ইনপুট

বর্ণমালার অক্ষর (এজেড, এজেড, 0-9) এবং স্পেসগুলির ক্রম সমেত একটি স্ট্রিং।

আউটপুট

স্ট্রিং রেন্ডারযুক্ত চিত্র এবং এতে গর্ত পূর্ণ রয়েছে। আপনি যে কোনও মানব পঠনযোগ্য ফন্ট ব্যবহার করতে পারবেন যতক্ষণ না তার জন্য গর্তগুলি পূরণ করা প্রয়োজন। আপনি হয় ফাইলটি i.png(পিএনজি ফর্ম্যাটে) চিত্র সংরক্ষণ করতে পারেন বা কেবল চিত্রটি প্রদর্শন করতে পারেন।

চিত্র বৈশিষ্ট্য:

  • কালো পাঠ্য
  • সাদা বা স্বচ্ছ পটভূমি
  • প্যাডিং:
    • চিত্রটির মাত্রা পাঠ্যের মাত্রার সর্বোচ্চ দ্বিগুণ হতে পারে
    • প্যাডিং সাদা বা স্বচ্ছ হয় পটভূমির মতো একই রঙের হওয়া উচিত

উদাহরণ

ইনপুট: Example text

আউটপুট: উদাহরণ আউটপুট


2
সম্পর্কিত। (একই চ্যালেঞ্জ, বিভিন্ন স্কোরিং।)
মার্টিন এন্ডার

অক্ষরের জন্য নূন্যতম ফন্টের আকার (পিক্সেলগুলিতে) আছে?
মার্টিন এন্ডার

হ্যাঁ, এটি
12px

উত্তর:


18

বাশ, 135 বাইট

convert +antialias -pointsize 99 label:$1 -fill red -draw 'color 0,0 floodfill' -fill black -opaque white -fill white -opaque red i.png

ইমেজম্যাগিক ( convert) ব্যবহার করে ।

নমুনা আউটপুট:

নমুনা

convert
  +antialias                              # disable antialiasing
  -pointsize 99                           # annoyingly necessary (see below)
  label:$1                                # draw input text
  -fill red -draw 'color 0,0 floodfill'   # flood fill from (0,0) with red
  -fill black -opaque white               # replace all white with black
  -fill white -opaque red                 # replace all red with white
  i.png

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


8

গণিত, 83 বাইট

ImageSubtract[s=Binarize@Rasterize@Style[#,FontSize->99],DeleteBorderComponents@s]&

এখানে চিত্র বর্ণনা লিখুন

একটি নামবিহীন ফাংশন যা ইনপুট হিসাবে স্ট্রিং নেয় এবং একটি চিত্র অবজেক্ট প্রদান করে। ধারণা ব্যবহার করা DeleteBorderComponentsরাখার শুধুমাত্র এবং গর্ত তারপর প্রকৃত চিত্র থেকে যারা বিয়োগ।


3
মজার বিষয় হ'ল ম্যাথমেটিকা ​​প্রায়শই দীর্ঘ বিল্টিন নাম ImageSubtractএবং এর মতো করেও জয়ী হয় DeleteBorderComponents
জে আতকিন

এটি কারণ ম্যাথামেটিকায় অনেক কিছুর জন্য নাম নির্মিত হয়েছে - আপনাকে প্রায়শই নিজের ফাংশন তৈরি করতে হবে না।
ASCII- কেবলমাত্র

4

স্মাইলব্যাসিক, 38 বাইট

??INPUT S$GPUTCHR.,2,S$,2,2,8GPAINT.,0

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

এখানে চিত্র বর্ণনা লিখুন


2

পাঠ্যটি খানিকটা দূরে খায় তবে ক্যানভাস ভিত্তিক সমাধানও রয়েছে:

জেএস, 610 বাইট

function o(a,b){return a[b]+a[b+1]+a[b+2]}x=prompt();l=x.length;c=document.createElement("canvas");document.body.appendChild(c);h=33;w=18*l;c.height=h;c.width=w;n=255;m=764;t=c.getContext("2d");t.fillStyle="white";t.fillRect(0,0,w,h);t.fillStyle="red";t.fillRect(0,2,w,h);t.font="900 30px Courier";t.fillStyle="black";t.fillText(x,0,25);d=t.getImageData(0,0,w,h);f=0;q=d.data.length;for(i=0;i<20;i++){for(j=0;j<q;j+=4){f=d.data;if(o(f,j)>0&&(o(f,j-w*4)>m||o(f,j+w*4)>m||o(f,j-4)>m||o(f,j+4)>m)){f[j]=n;f[j+1]=n;f[j+2]=n}}}for(k=0;k<q;k+=4){f=d.data;if(f[k+1]<1){f[k]=0;f[k+1]=0;f[k+2]=0}}t.putImageData(d,0,0)

এখানে চিত্র বর্ণনা লিখুন


2

পোস্টস্ক্রিপ্ট 273

[মূলত সম্পর্কিত চ্যালেঞ্জটিতে পোস্ট করা হয়েছিল , তবে আমি কখনই গণনা কার্যকর করি নি]]

অগ্রসর হওয়ার জন্য সঠিক ব্যবধানটি পেতে প্রতিটি চরিত্রকে সাধারণত রেন্ডার করে, তারপরে গ্লাইফ বর্ণিত সমস্ত বক্ররেখা নেয় এবং প্রতিটি এক পূরণ করে। সাধারণত অভ্যন্তরীণ এবং বহির্মুখী বক্ররেখা বিভিন্ন বর্ণের সাথে বর্ণনা করা হয়, সুতরাং এটি একটি শূন্য-ঘূর্ণায়মান নিয়ম বা সম-বিজোড় নিয়ম ব্যবহার করেই নির্বিশেষে একটি পূর্ণাঙ্গ অভ্যন্তরটি খালি ছেড়ে দেবে। পৃথকভাবে পূরণ করা, এটি সমস্ত পূরণ হয়।

/Courier 9 selectfont
9 9 moveto{( ) dup 0 4 3 roll put currentpoint 3 2 roll
dup show currentpoint 3 2 roll 5 3 roll moveto
true charpath[[{/moveto
cvx}{/lineto cvx}{/curveto cvx}{/closepath cvx]cvx[}pathforall
pop]]{exec currentpoint fill moveto}forall pop moveto}forall

ইন্ডেন্টযুক্ত:

/Courier 9 selectfont
9 9 moveto
{
    ( ) dup 0 4 3 roll put
    currentpoint 3 2 roll
    dup show
    currentpoint 3 2 roll
    5 3 roll moveto
    true charpath
    [ [{/moveto cvx}{/lineto cvx}{/curveto cvx}{/closepath cvx]cvx[}
       pathforall pop] ]
    { exec currentpoint fill moveto } forall
    pop moveto
} forall

ব্যবহারের। প্রোগ্রাম শুরু হওয়ার পরে স্ট্রিং অবজেক্ট স্ট্যাকের মধ্যে থাকবে বলে আশা করা যায়। এটি দৃশ্যমান করার জন্য অতিরিক্ত স্কেলিং।

$ gs -c '7 7 scale(Example Text)' -f courier.ps

আউটপুট থেকে স্নিপ করুন

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