আমি ইমেজম্যাগিকের অপারেটরটিকে পদ্ধতির গ্যারেথ -annotate
দ্য -draw
রেডের প্রস্তাবিত পদ্ধতির তুলনায় কিছুটা বেশি সুবিধাজনক বলে মনে করি, সহজ কারণে যে ইনপুট ফাইলটি পরিবর্তনের প্রয়োজন হয় না। এটি এর মতো শক্তিশালী নয় -draw
, তবে কোনও ছবিতে কোনও পাঠ্যের ফাইলের বিষয়বস্তু পাইকারি ছড়িয়ে দেওয়ার জন্য এটি ঠিক ঠিক কাজ করে।
convert -size 360x360 xc:white -font "FreeMono" -pointsize 12 -fill black \
-annotate +15+15 "@ascii.txt" image.png
প্রদত্ত ফাইল সামগ্রীগুলির একটি রেন্ডারড সংস্করণ আউটপুট আনবে text 15x15
, তবে -draw
আদিম অংশটি ধারণ করতে আপনার "ascii.txt" ফাইলটি পরিবর্তন না করে ।
যুক্তি উল্লেখ করা হচ্ছে
-font
ফ্রিমোনো উপলব্ধ না হলে (বা কেবল পছন্দসই নয়) কোনও সমর্থিত ফন্টের নাম হতে পারে argument যে কোনও ইমেজম্যাগিক কমান্ডের জন্য উপলব্ধ ফন্টগুলির একটি তালিকা -list
অপারেটরটি ব্যবহার করে পাওয়া যাবে , সুতরাং convert -list font
এতে সম্ভাব্য সমস্ত আর্গুমেন্ট প্রদর্শন করা হবে -font
।
আর্গুমেন্টগুলিতে -annotate
(ক্যানভাসের প্রান্ত থেকে রেন্ডার করা পাঠ্যটি কতদূর সরিয়ে নেওয়া যায়) অনুভূমিক এবং উল্লম্ব পিক্সেল অফসেট (যথাক্রমে) নিয়ে গঠিত। প্রথম অফসেট (অনুভূমিক এক্স-শিফট) কোনও ধনাত্মক পূর্ণসংখ্যার হতে পারে তবে কয়েকটি পিক্সেলের চেয়ে বড় হওয়া উচিত নয়। দ্বিতীয় অফসেট (উল্লম্ব Y-Shift টিপুন) আবশ্যক হতে অন্তত মনোনীত ফন্ট (আর্গুমেন্ট প্রাপ্ত করতে বিন্দু আকারের সমান -pointsize
), কারণ করে ImageMagick স্থাপন করবে বেসলাইন এ অফসেট দেওয়া ফন্ট। সুতরাং আপনি যদি কমপক্ষে pointsize
পিক্সেল ফন্টটি সরান না , তবে প্রথম লাইনের শীর্ষটি কেটে যাবে।
আমি কমপক্ষে বেশ কয়েকটি পিক্সেল অতিক্রম করার পরামর্শ দিচ্ছি, তাই আপনি যদি ব্যবহার করেন -pointsize 64
তবে আপনার মতো কিছু যুক্ত করা উচিত -annotate +15+80
। (বৃহত্তর ফন্টের আকারের সাথে অনুভূমিক অফসেট বাড়ানোর কোনও কারণ নেই, পাঠ্যের মাত্রার সাথে এটির কোনও সম্পর্ক নেই))
আউটপুট চিত্রের প্রয়োজনীয় মাত্রাগুলি অনুমান করার প্রয়োজনও ক্লান্তিকর হতে পারে। আমি সাধারণত অত্যধিক মান বাছাই, তারপর করে ImageMagick এর সুবিধা গ্রহণ -trim
এবং -border
ফলাফলের autocrop করতে। নিম্নলিখিত আদেশ:
convert -size 1000x2000 xc:white -font "FreeMono" -pointsize 12 -fill black \
-annotate +15+15 "@ascii.txt" -trim -bordercolor "#FFF" -border 10 +repage image.png
1000x2000 বাক্সে রেন্ডার হবে, তারপরে পাঠ্যের চারপাশে 10 পিক্সেলের সীমানা ব্যতীত অতিরিক্ত সাদা স্থান ছাঁটাই করবে। +repage
শেষ বাধা এ আউটপুট পিএনজি একটি চিত্র অফসেট, যা জিজ্ঞাসা কিনা এটা আবেদন করতে হবে অফসেট লোড একটি ডায়ালগ পপ আপ অন্যথায় কারণ গিম্পের সাথে তৈরি করা হচ্ছে।
(একথাও ঠিক যে, 1000x2000 অত্যধিক ছোট পাঠ্য ফাইল, এবং আর বেশী অন্তত উল্লম্ব মাত্রা বৃদ্ধি করা প্রয়োজন হতে পারে জন্য। এটা অতিরিক্ত অনুমান করতে, সহজ যদিও হিসাবে শুধুমাত্র খরচ convert
সামান্য বেশি CPU ও মেমরি যখন প্রক্রিয়াকরণ গ্রাসকারী।)
প্রাক ইনসুট ইনপুট
যদি আপনার পাঠ্য ফাইলটি রেন্ডার করার জন্য আপনার প্রয়োজন মতো ফর্ম্যাট করা না থাকে (বলুন, এটি যদি খুব দীর্ঘ লাইন ব্যবহার করে) তবে আপনাকে হস্তান্তর করার আগে আপনাকে পুনরায় ফর্ম্যাট করতে হতে পারে convert
। ইমেজম্যাগিক পাঠ্যটি মোড়ানো করবে না, সুতরাং পাঠ্যের প্রতিটি লাইন অনুভূমিকভাবে এর পূর্ণ দৈর্ঘ্য প্রসারিত করবে। ভাগ্যক্রমে, আপনার যে কোনও কমান্ড-লাইন ফর্ম্যাটরগুলির মাধ্যমে ফাইলটি চালানো সম্ভব, তারপর convert
সরাসরি ফাইল থেকে পড়ার পরিবর্তে প্রক্রিয়াযুক্ত পাঠ্যটি পাইপ করুন:
fmt < ascii.txt | convert -size 1000x2000 xc:white -font "DejaVu-Sans-Condensed" \
-pointsize 24 -fill black -annotate +15+30 "@-" -trim -bordercolor "#FFF" \
-border 10 +repage image.png
এটি কমান্ড দ্বারা প্রসেস হওয়ার পরেascii.txt
, 24-পয়েন্ট দেজাভু সানস কনডেন্সডের বিষয়বস্তু রেন্ডার করবে , যা তার ডিফল্ট মোডে অপারেশনটির 75 ডিগ্রি প্রস্থে শব্দ-মোড়ানো দ্বারা তার ইনপুটটিকে পুনরায় ফর্ম্যাট করবে। (যদি না URL টির মতো 75 টি অক্ষরের বেশি দীর্ঘ ধারাবাহিক স্ট্রিং না থাকে তবে সে ক্ষেত্রে তারা প্রসারিত করবে))fmt
fmt
পাঠ্যটি পুনরায় ফর্ম্যাট করে নিলে এটি পাস হয়ে যাবে convert
যার পরে পাইপযুক্ত fmt
আউটপুট রেন্ডার করা হবে , যেমন এটি সরাসরি ফাইলটি পড়ছিল। ( -
"কোনও নামযুক্ত ডিস্ক ফাইলের পরিবর্তে স্ট্যান্ডার্ড ইনপুট থেকে পড়া" এর জন্য ফাইলের নাম উল্লেখ করা মোটামুটি সাধারণ ইউনিক্স শেল শর্টহ্যান্ড এবং ইমেজম্যাগিকের সরঞ্জামগুলি সেই কনভেনশন অনুসরণ করে))