কোনও টেক্সট ফাইলকে কীভাবে ছবিতে রূপান্তর করা যায়


17

আমার যদি একটি সরল পাঠ্য ফাইল থাকে, আমি কীভাবে কমান্ড লাইনের মাধ্যমে এটি কোনও চিত্র ফাইলে রূপান্তর করতে পারি? (এবং এতে ASCII শিল্পের বিন্যাস সংরক্ষণ করুন)


আমি কোনও মনোস্পেস ফন্টের সাহায্যে পাঠ্য রেন্ডার করার একটি স্বয়ংক্রিয় উপায় সন্ধান করতে চাই (জিম্প বা ল্যাটেক্স যাওয়ার উপায় হতে পারে)
আরএসফালকন 7

এটি একটি কুরুচিপূর্ণ সমাধান, তবে কেন catএটি কেবল স্ক্রীনশট নেবেন না ?
psimon

এটি খুব কুরুচিপূর্ণ হবে এবং একটি স্ক্রিনশটে প্রম্পটের মতো অতিরিক্ত তথ্য অন্তর্ভুক্ত থাকবে।
কোওরা ফ্যানস

যদি শুধুমাত্র প্রম্পট সমস্যা হচ্ছে, এই চেষ্টা: clear && cat file। তবে হ্যাঁ, এটি কুরুচিপূর্ণ।
গীতিকার

না এটি এখনও আমার ব্যবহারকারীর নামটি দেখায় ... এবং যদি না আমি কমান্ড লাইনের মাধ্যমে স্ক্রিনশট তৈরির কোনও উপায় না পাই তা গ্রহণযোগ্য হবে না।
কোওরা ফ্যানস

উত্তর:


8

এটি করতে আপনি ওপেনঅফিস (লাইব্রোফাইস) ব্যবহার করতে পারেন।

soffice --convert-to jpg "Textfile.doc"

এটি টেক্সট ফাইলগুলির সাথেও কাজ করে।


ঐটা অসাধারণ! আমার ধারণা নেই ওপেনঅফিসটি জেপিজি ... বা পিএনজিতে রূপান্তর করতে পারে, যা আমি চেষ্টা করেছিলাম; সম্ভবত অন্যান্য ফর্ম্যাটগুলিও। ( --helpআউটপুটে এটির কোনও উল্লেখ বা এমনকি কোনও ইঙ্গিত নেই এমনটিও সহায়তা করে না )) কেবলমাত্র কুঁচকে, পাঠ্যটি যদি কোনও পৃষ্ঠার চেয়ে দীর্ঘ হয় তবে মনে হয় আপনি কেবল প্রথম পৃষ্ঠাটি পেয়েছেন। (যদি অন্য পৃষ্ঠাগুলি বা একাধিক ফাইল আউটপুট দেওয়ার কোনও উপায় থাকে তবে তা আমার কাছে তাত্ক্ষণিকভাবে স্পষ্ট নয় Pass উত্তীর্ণের --outdirকোনও পার্থক্য নেই)) তবে পাঠ্যের সংক্ষিপ্ত বিটগুলির জন্য এটি খুব ভালভাবে কাজ করে এবং এমনকি অটো-মোড়কেও কাজ করে। নিস!
এফআরডি

পাঠ্যটি যদি ছোট হয় তবে এটিতে সম্ভাব্য ক্ষুদ্র পাঠ সহ একটি নির্দিষ্ট আকারের পৃষ্ঠা তৈরি করা হয়।
সিরো সান্তিলি 事件 改造 中心 法轮功 六四 事件

1
@ সিরোস্যান্টিলি 改造 改造 中心 法轮功 六四 事件 স্থির আকারের পৃষ্ঠা, সত্য, কিন্তু সেখানেই ইমেজম্যাগিকের অটো-ক্রপিং আবার কাজে আসবে:soffice --convert-to jpg ascii.txt && mogrify -trim -bordercolor "#FFF" -border 10 +repage ascii.jpg
22:43 এ 20 ই

26

imagemagickতোমার বন্ধু এখানে নীচের অনুরূপ কিছু আপনাকে সহায়তা করতে পারে: -

convert -size 360x360 xc:white -font "FreeMono" -pointsize 12 -fill black -draw @ascii.txt image.png

ascii.txtআপনার অসি-আর্ট ফাইলটি কোথায় : -

text 15,15 "                 .88888888:. 
                88888888.88888. 
              .8888888888888888. 
              888888888888888888 
              88' _`88'_  `88888 
              88 88 88 88  88888 
              88_88_::_88_:88888 
              88:::,::,:::::8888 
              88`:::::::::'`8888 
             .88  `::::'    8:88. 
            8888            `8:888. 
          .8888'             `888888. 
          .8888:..  .::.  ...:'8888888:. 
        .8888.'     :'     `'::`88:88888 
       .8888        '         `.888:8888. 
      888:8         .           888:88888 
    .888:88        .:           888:88888: 
    8888888.       ::           88:888888 
    `.::.888.      ::          .88888888 
   .::::::.888.    ::         :::`8888'.:. 
  ::::::::::.888   '         .:::::::::::: 
  ::::::::::::.8    '      .:8::::::::::::. 
 .::::::::::::::.        .:888::::::::::::: 
 :::::::::::::::88:.__..:88888:::::::::::' 
  `'.:::::::::::88888888888.88:::::::::' 
        `':::_:' -- '' -'-' `':_::::'`  
    "

সঙ্গে text 15,15পাঠের প্রথম লাইন হিসেবে যোগ করা হয়েছে (15,15 একটি অবস্থানগত অফসেট যায়)। এছাড়াও, নিশ্চিত করুন যে রূপান্তরিত হওয়া প্রকৃত পাঠ্য উদ্ধৃতিতে আবদ্ধ। একক বা ডাবল উদ্ধৃতিগুলি করবে, তবে নিশ্চিত হয়ে নিন যে এগুলি আপনার ascii-art এর অংশ হিসাবে ব্যবহৃত হচ্ছে না কারণ এটি বিষয়গুলিকে বিভ্রান্ত করবে।

আপনি যে ফন্টটি চয়ন করেছেন তা মোনস্পেসড ফন্ট হওয়া উচিত, অন্যথায় পাঠ্যটি সারিবদ্ধ হবে না।

এটি উত্পাদন করে:

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


বৈধ ফন্টের নামের তালিকা পেতে কীভাবে আপনার কোনও ইঙ্গিত রয়েছে? যদিও ফ্রি মনো আমার সিস্টেমে ইনস্টল করা আছে বলে মনে হচ্ছে, চিত্রমাফিক এটি সনাক্ত করে না।
রাফেল

1
@ রাফেল: আপনি -listবিকল্পটি ব্যবহার করে যে কোনও ইমেজম্যাগিক কমান্ড (রূপান্তর সহ) থেকে বর্তমানে উপলভ্য ফন্টগুলির একটি তালিকা পেতে পারেন । তাই যেমন convert -list fontআপনি করা সম্ভব এর সব আর্গুমেন্ট দেখাতে হবে -font
14:38

আপনি এই প্রোগ্রামটি ব্যবহার করে ইনস্টল করতে পারেন sudo yum install ImageMagick
রঙ্গসীমান

@ আর কেটকায়েউ এই আদেশটি ফেডোরা 21 বা তার চেয়ে কম চলমান, বা আরএইচইএল-এর কিছু সংশোধনীর জন্য বৈধ ( ফেডোরায় 22+ ইনস্টল কমান্ডটি রয়েছে sudo dnf install ImageMagickএবং অন্যান্য জনপ্রিয় লিনাক্সে এটি কিছু sudo apt-get install ...কমান্ড হবে dist নির্বিশেষে, উপরোক্ত তথ্যগুলি প্রকৃতপক্ষে ধরেই নেয় যে ইমেজম্যাগিক প্রশ্নযুক্ত সিস্টেমে ইনস্টল করা আছে।
22:41

18

আমি ইমেজম্যাগিকের অপারেটরটিকে পদ্ধতির গ্যারেথ -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আউটপুট রেন্ডার করা হবে , যেমন এটি সরাসরি ফাইলটি পড়ছিল। ( -"কোনও নামযুক্ত ডিস্ক ফাইলের পরিবর্তে স্ট্যান্ডার্ড ইনপুট থেকে পড়া" এর জন্য ফাইলের নাম উল্লেখ করা মোটামুটি সাধারণ ইউনিক্স শেল শর্টহ্যান্ড এবং ইমেজম্যাগিকের সরঞ্জামগুলি সেই কনভেনশন অনুসরণ করে))


1
annotateআর্গুমেন্টের y উপাদানটি অবশ্যই উপস্থিত রয়েছে তা নিশ্চিত হওয়ার জন্য পয়েন্ট আকারের চেয়ে বড় হওয়া উচিত: convert -size 1000x2000 xc:white -font "FreeMono" -pointsize 123 -fill black \ -annotate +0+123 "@ascii.txt" -trim -bordercolor "#FFF" -border 10 +repage image.pngযেখানে 123পছন্দসই আকার where এছাড়াও, convert -list fontকোন ফন্টগুলি সমর্থিত তা খুঁজে পেতে আপনি ব্যবহার করতে পারেন ( "FreeMono"সর্বজনীন সমর্থিত নয়)।
অ্যালেক জ্যাকবসন

1
সংশোধন: convert -list fontসঠিক বাক্য গঠন, না convert -list fonts
সোপালাজো ডি অ্যারিরেজ 24'19

1
@ সিরোস্যান্টিলি mm 改造 中心 法轮功 六四 事件 হুঁ, ভাল প্রশ্ন। আমার আইএম 7 ইনস্টলের কোনও নীতি সেট করা নেই /etc/ImageMagick-7/policy.txtযা এই রূপান্তরিত ফর্মগুলির কোনওটির সাথে হস্তক্ষেপ করে। আপনি কী জানেন যে কোন নীতি রূপান্তরকে অবরুদ্ধ করছে এবং কেন সেট করা হয়েছে? (এছাড়াও, স্ট্রগুলিতে আঁকড়ে ধরে: কি fmt ...কমান্ডের পাইপযুক্ত ফর্মটি কোনও সুযোগে কাজ করে? যদি তাই হয় তবে আপনি কেবল fmtcat@ascii.txt
এটির

1
ওহো, আরও একটি প্রশ্ন: আপনি "কৃত্রিম মেটাডেটা ছাড়াই টুক্স দিয়ে" ব্যর্থ হয়েছেন "নির্দিষ্ট করেছেন। এর অর্থ কি এই যে আপনি যখন @ গ্যারেথThe রেডের ফর্মটি ব্যবহার করেন এবং পজিশনিং কমান্ডগুলি ফাইলটিতে whenোকান তখন কি convert সফল-draw হয় ascii.txt? বিষয়টি যদি বিস্ময়কর হয় তবে তা আমার কাছে মনে হয়, যেহেতু আমদানি করা টেক্সট ফাইলের বিষয়বস্তুগুলি কাজ করার সময় কী কী সুরক্ষার উদ্বেগ রয়েছে তা কী -annotateপ্রযোজ্য হবে না তা ভাবতে আমার সমস্যা হচ্ছে -draw
এফআরডি

1
কুৎসিত মেটাডাটার কারণে আমি গ্যারেথের উত্তরও চেষ্টা করে দেখিনি, তবে এখন তা কার্যকর হয়েছে। আমার /etc/ImageMagick-6/policy.xmlরয়েছে <policy domain="path" rights="none" pattern="@*"/>তাই আমি যে এক অনুমান করছি। স্টিডিনও কাজ করে না, সম্ভবত এটিরও এই @-প্যাটার্ন রয়েছে। হতাশদের জন্য, "$(cat ascii.txt)"যদি এটি সিএলআই দৈর্ঘ্যটি উড়িয়ে না দেয় তবে কাজ করে।
সিরো সান্তিলি 新疆 改造 中心 法轮功 六四
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.