فونٹ فورج کے ذریعے نستعلیق ترسیمہ جات کی امپورٹ

نبیل

تکنیکی معاون
السلام علیکم،
کچھ عرصہ قبل محمد سعد کی تجویز پر نفیس نستعلیق کے ذریعے ترسیمہ جات تیار کرنے اور انہیں خودکار انداز میں فونٹ میں شامل کرنے پر کام کا آغاز ہوا تھا۔ ابن سعید نے اس مقصد کے لیے 31000 سے زائد ترسیمہ جات کی ایس وی جی فائلیں فراہم کر دی تھیں۔ اس کے بعد میں نے پائتھون کے فونٹ فورج ماڈیول کو استعمال کرکے ان ویکٹر گرافک کو فونٹ میں خودکار انداز میں شامل کرنے کے سلسلے میں تحقیق شروع کی تھی۔ بالآخر میں ایک ایسی سکرپٹ لکھنے میں کامیاب ہو گیا جس کے ذریعے تمام ایس وی جی فائلیں فونٹ میں امپورٹ ہو گئیں۔ فی الحال میں یہ فونٹ یہاں فراہم کر رہا ہوں تاکہ ان ابتدائی نتائج کا جائزہ لیا جا سکے۔ اس کو تیار کرنے کے لیے پائتھون سکرپٹ اور اس کے استعمال کا طریقہ بھی میں جلد ہی فراہم کر دوں گا۔

ابتدائی جائزے کے بعد مجھے یہ لگتا ہے کہ ترسیمہ جات کی ویکٹر گرافکس کو بہتر بنانے کی ضرورت ہے۔ یہ بھی ممکن ہو سکتا ہے فونٹ فورج کے ذریعے کوئی ایسی کیلکولیشن کی جا سکیں جن کے ذریعے یہ لگیچرز اپنے باؤنڈنگ باکس میں فٹ ہو جائیں۔ بہرحال اس سلسلے میں مزید تحقیق کی ضرورت ہے۔ فی الحال میری فونٹ سازی کے ماہرین عارف کریم، عبدالمجید، علوی امجد اور دوسرے دوستوں سے گزارش ہے کہ اس کام کا جائزہ لیں اور اس پراجیکٹ کو آگے بڑھانے کے لیے اپنی تجاویز پیش کریں۔ پائتھون کے فونٹ فورج ماڈیول کے ذریعے کافی مفید کام ممکن ہے۔ میں نے نوٹ کیا ہے کہ اس ماڈیول کے ذریعے لک اپ بھی شامل کیے جا سکتے ہیں۔ میں ایک ہفتے بعد پاکستان جا رہا ہوں۔ اب وہاں سے واپسی پر ہی اس پراجیکٹ پر مزید کام ممکن ہو سکے گا۔

ٹیسٹ فونٹ ڈاؤنلوڈ کریں

اپڈیٹ:

ایس وی جی امپورٹ کرنےکے لیے ذیل کی پائتھون سکرپٹ استعمال کی گئی ہے:

PHP:
import fontforge
import os.path


# obtain command line arguments for 
# 1: path of the folder containing svgs
# 2: input sfd file
# 3: output font name
def createGlyph(font,glyphname):
	font.createChar(-1, glyphname)
	svgPath= 'Nafees/'+glyphname+'.svg'
	if os.path.isfile(svgPath):
		font[glyphname].importOutlines(svgPath)
	else:
		print svgPath+" is not valid.\n"

def AddGlyphs(font):
	logFile= open("log.txt","w")
	for f in os.listdir('Nafees'):
		(baseName, extName)=os.path.splitext(f)	
		logFile.write("creating glyph "+baseName+"\n")
		createGlyph(font, baseName)
	logFile.close()

def createFont(strFontName):
	tt=fontforge.open("TestFont.sfd")
	AddGlyphs(tt)
	tt.generate(strFontName)

createFont('TestFont.ttf')

والسلام
 

Attachments

  • pic2.gif
    pic2.gif
    6.1 KB · مناظر: 28
  • pic1.gif
    pic1.gif
    6.7 KB · مناظر: 30

علیرضا

محفلین
ویکٹر گرافکس کو بہتر بنانے کے لئے کسی گرافک دیزائنر کی مدد لینی چاہیے جو کہ ٹریس یا ڈرا کر کے ڈیزائن کو بہتر کر سکیں۔ اگر ایسا ہو جائے تو آپکا تیار کردہ فانٹ پرفیکٹ ہو جائے گا۔
 

نبیل

تکنیکی معاون
ویکٹر گرافکس کو بہتر بنانے کے لئے کسی گرافک دیزائنر کی مدد لینی چاہیے جو کہ ٹریس یا ڈرا کر کے ڈیزائن کو بہتر کر سکیں۔ اگر ایسا ہو جائے تو آپکا تیار کردہ فانٹ پرفیکٹ ہو جائے گا۔

آپ شاید اس پراجیکٹ کے پس منظر سے ناواقف ہیں۔ بہتری سے میری مراد ان لگیچرز کی اس اعتبار سے سکیلنگ ہے تاکہ یہ درست سائز کے ہو جائیں۔
 

علیرضا

محفلین
غلطی معاف، میں سمجھا شائد گرافکس میں بہتری چاہیے۔ میں نے کئی ویب سائٹس میں جمیل کشید 2 نامی فانٹ دیکھا ہے اور اگر اسکا سائز چھوٹا ھو تو وہ صحیح سے نہیں دکھتا، سوچا شائد یہاں بھی یہی مسلہ ہے۔
اس کا مطلب تو یہ ہوا کہ آپ کا فانٹ ماشااللہ رینڈر ہائی کوالٹی میں ہو گا۔
 

نبیل

تکنیکی معاون
امید تو یہی ہے کہ فونٹ اچھی کوالٹی کا ہوگا۔ دراصل یہ ویکٹر گرافکس نفیس نستعلیق فونٹ کے ذریعے جنریٹ کی گئی ہیں۔ اس ایکسرسائز کا مقصد کاپی رائٹ سے آزاد ترسیمہ جات کا حصول ہے۔ اب کم از کم خودکار انداز میں ان تمام لگیچرز کو فونٹ میں شامل کرنے کا تجربہ تو کامیاب رہا ہے۔ لیکن فونٹ ایڈیٹرز میں دیکھنے سے پتا چل رہا ہے کہ اپنے باؤنڈنگ باکس میں یہ لگیچرز صحیح فٹ نہیں ہو رہے ہیں۔ اس میں بہتری لانے کی ضرورت ہے۔ ابن سعید یا محمد سعد شاید اس بارے میں کچھ معلومات فراہم کر سکیں کہ ویکٹر گرافکس کو درست سائز میں کیسے جنریٹ کیا جا سکتا ہے۔ میں انک سکیپ کے پائتھون انٹرفیس کا بھی جائزہ لے رہا ہوں۔ ہو سکتا ہے کہ اس کے ذریعے بھی یہ کام بہتر انداز میں کیا جانا ممکن ہو۔

میں یہ تو بتانا بھول ہی گیا تھا کہ یہ سارا کام شروع کرنے سے پہلے میں نے بالآخر اپنی پرانی اوبنٹو ورچوئل مشین کو خیرباد کہہ دیا اور اس کے اوپر ہی نئی اوبنٹو 10.4 ورچوئل مشین انسٹال کر دی۔ :) اب یہ سسٹم ٹھیک چل رہا ہے۔ لیکن طویل پراسیسنگ کے دوران یہ سسٹم سست رفتار بھی ہو جاتا ہے۔ میں نے اس ورچوئل مشین کے لیے 512 میگابائٹ ریم مختص کی ہوئی ہے۔ یہ ورچوئل مشین میں نے ورچوئل باکس کے ذریعے سیٹ اپ کی ہے اور اس میں ورچوئل باکس ٹولز بھی انسٹال کیے ہیں جس کی بدولت ورچوئل مشین کی گرافکس کی پرفارمنس قدرے بہتر ہو جاتی ہے اور اسے فل سکرین کرنا بھی ممکن ہو جاتا ہے۔ ایک علیحدہ لینکس مشین کا فائدہ یہ ضرور ہے کہ اس میں پورے ریسورسز آپریٹنگ سسٹم کو حاصل ہوتے ہیں۔ لیکن ورچوئل مشین میں لینکس کے استعمال کے ذریعے ونڈوز اور لینکس دونوں کا استعمال بیک وقت ممکن ہو جاتا ہے۔ اوبنٹو ورچوئل مشین سے ونڈوز میں فائل منتقل کرنے یا وہاں سے کاپی کرنے کے لیے میں نے اوبنٹو میں OpenSSH سرور انسٹال کر دیا ہے اور اب میں ونڈوز میں WinSCP کا استعمال کرکے وہاں سے اوبنٹو میں فائلیں منتقل کر سکتا ہوں یا وہاں سے کاپی کر سکتا ہوں۔ اس سیٹ اپ کی مکمل تفصیل میں بعد میں لکھوں گا۔
 
میرے خیال سے میں اس کے ترسیموں کی لائن ہائٹ اسکیل کر کے دیکھتا ہوں جس کے بعد اس کی چوڑائی بھی اسی تناسب میں بڑھ جائے گی۔
 

شمزا

محفلین
مجھے فونٹ فورج کا تو اندازہ نہیں لیکن فونٹ لیب میں البتہ یہ کام بطریق احسن انجام پا سکتا ہے
http://forum.fontlab.com/fontlab-studio/how-to-resize-a-font-in-fontlab-studio-t7047.0.html
اس لنک پر کچھ تفصیل ہے
اور میں نے یہ طریقہ آپ کے مہیا کردہ فونٹ پر لگایا تو چند لمحوں میں تمام فونٹ 300 فیصد بڑا بھی ہوگیا اور اپنے باکس میں تمام گلفس فٹ بھی ہو گئے
لیکن مسئلہ یہ ہوا کہ 6401 گلفس سے زیادہ فونٹ لیب ہنڈل نہیں کرتا
اب سیو کیسے کروں
لیکن اگر آپ اپنے طور پر ٹرائی کرنا چاہیں تو میں نے جو طریقہ اپنایا ہے اسے استعمال کر کے گلفس بنا کر کاپی پیسٹ سے شاید کام چل جائے
میرا ٹیسٹ طریقہ یوں تھا
Tools>Action sets
step1
adjust matrics by 300%
it was to increase too small glyphs
2
Autospacing
I used default settings
similarly we can shift all glyphs x or y direction as well
میں دیکھتا ہوں اگر سیمپل اپلوڈ کرنے کی کوئی صورت نکلی
 

نبیل

تکنیکی معاون
شکریہ شمزا۔ میں ترجیح تو اسی بات کو دوں گا کہ زیادہ تر کام لینکس انوائرنمنٹ میں ہو سکے۔ اس طرح مجھے بار بار ونڈوز اور لینکس کے چکر نہیں لگانے پڑیں گے۔ البتہ ضرورت پڑی تو فونٹ لیب کا استعمال کیا جا سکتا ہے۔ فونٹ لیب میں پائتھون سکرپٹنگ کی سہولت موجود ہے، اس کا استعمال بھی ممکن ہے۔ لیکن اگر آپ کے مشاہدے کے مطابق اگر 3 گنا سائز بڑھانے سے گلفس اپنے باکس میں فٹ ہو جاتی ہیں تو یہ کام ویکٹر گرافکس جنریٹ کرنے کے دوران بھی کیا جا سکتا ہے۔ اس مقصد کے لیے ابن سعید کی liggen سکرپٹ کو مختلف سیٹنگز کے ساتھ استعمال کرکے دیکھنا ہوگا۔
 
نبیل بھائی آپ لینکس اور ونڈوز میں فائلیں شئیر کرنے کے لئے دونوں مشینوں میں ڈراپ باکس کلائنٹ انسٹال کر لیں۔ بہت سہولت ہو جائے گی۔
 

شاکرالقادری

لائبریرین
ترسیموں کو فونٹ کریٹر، فونٹ لیب یا ایشیا فونٹ لیب میں ویلڈ بھی کرنا ہوگا تاکہ مکمل ترسیمہ ایک جیسی کوالٹی دے سکے ورنہ جوڑوں کے مقامات پر کوالٹی متاثر ہوگی
 

نبیل

تکنیکی معاون
ترسیموں کو فونٹ کریٹر، فونٹ لیب یا ایشیا فونٹ لیب میں ویلڈ بھی کرنا ہوگا تاکہ مکمل ترسیمہ ایک جیسی کوالٹی دے سکے ورنہ جوڑوں کے مقامات پر کوالٹی متاثر ہوگی

شاکرالقادری صاحب، یہ کام تو شاید مینولی ہی کرنا پڑے گا۔ فی الحال میرے علم میں اس کے لیے کوئی خودکار طریقہ نہیں ہے۔
 

شاکرالقادری

لائبریرین
شاکرالقادری صاحب، یہ کام تو شاید مینولی ہی کرنا پڑے گا۔ فی الحال میرے علم میں اس کے لیے کوئی خودکار طریقہ نہیں ہے۔
ایک دفعہ ترسیمے مناسب سائز میں آجائیں تو اس مختلف فونٹ فائلوں میں منقسم کرنے کے بعد دوچار بندے آسانی سے یہ کام کر لیں گے

البتہ ایک اور بات
وہ یہ کہ
اگر ترسیموں کی لسٹ کو ابرار صاحب کے اطلاقیہ کی مدد سے دو حرفی ، تین حرفی اور چار حرفی کشتییوں کے سیٹوں میں بدل لیا جائے تو اس کے بعد پراسیس کرنے میں ایک طرح کی کشتیاں اور ترسیمے یکجا ہو سکیں گے اور بعد میں کسی بھی مرحلہ پر کوئی ترسیمہ تلاش کرنا مشکل نہ ہوگا
 

نبیل

تکنیکی معاون
شکریہ شاکرالقادری صاحب۔ آپ کا آئیڈیا اچھا ہے۔ ترسیمہ جات کی لسٹ کو لمبائی کے اعتبار سے مختلف لسٹوں میں تقسیم کرنا زیادہ مشکل نہیں ہونا چاہیے۔ اس طرح مختلف لمبائی کے ترسیمہ جات کے لیے علیحدہ فونٹ جنریٹ کرنا ممکن ہو سکے گا۔
 

نبیل

تکنیکی معاون
نبیل بھائی آپ لینکس اور ونڈوز میں فائلیں شئیر کرنے کے لئے دونوں مشینوں میں ڈراپ باکس کلائنٹ انسٹال کر لیں۔ بہت سہولت ہو جائے گی۔

شکریہ ابن سعید۔ ڈراپ باکس والا حل اچھا ہے۔ ویسے ورچوئل مشین کے ساتھ ہوسٹ کمپیوٹر کے فولڈر بھی شئیر کیے جا سکتے ہیں۔
 

arifkarim

معطل
اول : سورس فائل کا ربط درست نہیں ہے۔ ایک / زیادہ ہے۔
دوم: تمام گلفس ایک لائن میں نہیں ہیں۔ مطلب کوئی اوپر کوئی نیچے ہے۔ اگر تمام ایک ہی لائن میں مل جائیں تو فانٹ کریٹر میں باآسانی مو ڈیفائی کر سکتا ہوں۔ اسوقت ۶۱۰ گنا فائل سائز بڑھا کر نفیس نستعلیق کے سائز کے برابر لاکر تجربہ کیا ہے۔ لیکن جب تک بیس لائن کا مسئلہ حل نہیں ہوگا۔ ہمارے لئے یہ بیکار ہے۔
 

شمزا

محفلین
شاکرالقادری صاحب، یہ کام تو شاید مینولی ہی کرنا پڑے گا۔ فی الحال میرے علم میں اس کے لیے کوئی خودکار طریقہ نہیں ہے۔

اگر میں غلطی پر نہیں ہوں تو آپ شاید مرج کرنے کی بات کر رہے ہیں کہ جو گلفس مختلف کمپوننٹس سے مل کر بنائے گئے ہیں ان کے جوڑ ختم کر کے ان کو ایک ہی گلف کی صورت دے دی جائے
یہ کام بھی فونٹ لیب میں Merge Contours کی صورت میں کیا جاسکتا ہے
اور بیک وقت تمام گلفس پر اپلائی ہو سکتا ہے
ابھی میں نے تجربہ کیا تو ایک مسئلہ یہ ہوا کہ بعض گلفس کے نقطے جو اصل ڈرائنگ کے ساتھ متصل تھے وہ بھی گلف کا حصہ بن گئے
باقی تمام گلفس نہایت اعلی طریقے سے ایک یکجا لگیچر کی صورت اختیار کر گئے
 

نبیل

تکنیکی معاون
اول : سورس فائل کا ربط درست نہیں ہے۔ ایک / زیادہ ہے۔
دوم: تمام گلفس ایک لائن میں نہیں ہیں۔ مطلب کوئی اوپر کوئی نیچے ہے۔ اگر تمام ایک ہی لائن میں مل جائیں تو فانٹ کریٹر میں باآسانی مو ڈیفائی کر سکتا ہوں۔ اسوقت ۶۱۰ گنا فائل سائز بڑھا کر نفیس نستعلیق کے سائز کے برابر لاکر تجربہ کیا ہے۔ لیکن جب تک بیس لائن کا مسئلہ حل نہیں ہوگا۔ ہمارے لئے یہ بیکار ہے۔

کونسی فائل زیادہ ہے؟
جہاں تک گلفس کی الائنمنٹ کا تعلق ہے تو میں نے پہلے مرحلے میں صرف خودکار امپورٹ پر توجہ دی ہے۔ اس سے آگے بڑھنے کے لیے مجھے فونٹ سازوں کی جانب سے ہنٹس درکار ہوں گے۔ میرے خیال میں بیس لائن اور باؤنڈنگ باکس جیسے مسائل گلفس جنریٹ کرتے وقت حل کیے جانے چاہییں۔
 

محمد سعد

محفلین
سعد میاں کہاں ہیں آپ؟ :)
معاف کرنا، آج کل میں ذرا سائنسی دنگل میں مصروف رہتا ہوں۔ :grin:

دراصل میں نے بہت عرصہ پہلے ہی خود کو سائنس اور لینکس والے حصوں تک محدود کر لیا تھا اور اب ان سے باہر شاز و نادر ہی جھانکتا ہوں۔ اسی لیے یہ خبر مجھ تک پہنچنے میں کافی دیر ہو گئی۔ :)
چنانچہ گزارش ہے کہ جب بھی سائنس اور لینکس والے حصوں سے باہر کہیں میری ضرورت پڑے، مجھے فوراً ذاتی پیغام یا برقی ڈاک کے ذریعے اطلاع دے دیا کریں۔
 
Top