পাঠ্য আইকন তৈরি করতে ইমেজম্যাগিক ব্যবহার করা
এখানে যেমন নীতির উপর ভিত্তি করে , নীচের স্ক্রিপ্ট ইমেজম্যাগিকের সাহায্যে একটি পাঠ্য ফাইল থেকে একটি পাঠ্য আইকন তৈরি করে।
বৃত্তাকার ব্যাকগ্রাউন্ড চিত্রের রঙ এবং পাঠ্যের রঙ কোনও স্ক্রিপ্টের মাথায় সেট করা যেতে পারে (পাশাপাশি বেশ কয়েকটি অন্যান্য বৈশিষ্ট্যও)।
এটি কী করে
এটি পাঠ্য ফাইলটি পড়ে, প্রথম চারটি লাইন গ্রহণ করে (সেট করা n_lines = 4
), n_chars = 10
প্রতিটি লাইনের প্রথম সাতটি অক্ষর (সেট করা ), এবং আকারের চিত্রের উপর একটি ওভারলে তৈরি করে, যেমন: উদাহরণস্বরূপ psize = "100x100"
।
ব্যবহারবিধি
স্ক্রিপ্টটি imagemagick
ইনস্টল করা দরকার:
sudo apt-get install imagemagick
তারপর:
- একটি ফাঁকা ফাইলে স্ক্রিপ্ট অনুলিপি করুন
- এটি হিসাবে সংরক্ষণ করুন
create_texticon.py
মাথা বিভাগে সেট করুন:
- আইকনের পটভূমির রঙ
- আইকনের টেক্সট্লেয়ারের রঙ
- তৈরি আইকনটির আকার
- আইকনে প্রদর্শিত লাইনের সংখ্যা
- আইকনটিতে দেখানোর জন্য প্রতি লাইন (প্রথম) অক্ষরের সংখ্যা
- ছবিটি যেখানে সংরক্ষণ করতে হবে
আর্গুমেন্ট হিসাবে এটি আপনার টেক্সটফাইলে চালান:
python3 /path/to/create_texticon.py </path/to/textfile.txt>
এই পান্ডুলিপি
#!/usr/bin/env python3
import subprocess
import sys
import os
import math
temp_dir = os.environ["HOME"]+"/"+".temp_iconlayers"
if not os.path.exists(temp_dir):
os.mkdir(temp_dir)
# ---
bg_color = "#DCDCDC" # bg color
text_color = "black" # text color
psize = [64, 64] # icon size
n_lines = 4 # number of lines to show
n_chars = 9 # number of (first) characters per line
output_file = "/path/to/output/icon.png" # output path here (path + file name)
#---
temp_bg = temp_dir+"/"+"bg.png"; temp_txlayer = temp_dir+"/"+"tx.png"
picsize = ("x").join([str(n) for n in psize]); txsize = ("x").join([str(n-8) for n in psize])
def create_bg():
work_size = (",").join([str(n-1) for n in psize])
r = str(round(psize[0]/10)); rounded = (",").join([r,r])
command = "convert -size "+picsize+' xc:none -draw "fill '+bg_color+\
' roundrectangle 0,0,'+work_size+","+rounded+'" '+temp_bg
subprocess.call(["/bin/bash", "-c", command])
def read_text():
with open(sys.argv[1]) as src:
lines = [l.strip() for l in src.readlines()]
return ("\n").join([l[:n_chars] for l in lines[:n_lines]])
def create_txlayer():
subprocess.call(["/bin/bash", "-c", "convert -background none -fill "+text_color+\
" -border 4 -bordercolor none -size "+txsize+" caption:"+'"'+read_text()+'" '+temp_txlayer])
def combine_layers():
create_txlayer(); create_bg()
command = "convert "+temp_bg+" "+temp_txlayer+" -background None -layers merge "+output_file
subprocess.call(["/bin/bash", "-c", command])
combine_layers