نوری نستعلیق کرننگ پر کام!

شاکرالقادری

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

arifkarim

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

arifkarim

معطل
mohdumar اوپر لسٹ میں جمیل نوری نستعلیق کے تمام ترسیمے اعراب اسمیت ہیں۔ اگر اعراب کے بغیر لسٹ درکار ہو تو بتا دیں۔ ترسیموں کو انکے لاطینی نام میں کنورٹ کرنے کیلئے یہ ٹول استعمال کیا جا سکتا ہے۔
 

mohdumar

محفلین
mohdumar اوپر لسٹ میں جمیل نوری نستعلیق کے تمام ترسیمے اعراب اسمیت ہیں۔ اگر اعراب کے بغیر لسٹ درکار ہو تو بتا دیں۔ ترسیموں کو انکے لاطینی نام میں کنورٹ کرنے کیلئے یہ ٹول استعمال کیا جا سکتا ہے۔

اعراب کا سپورٹ بھی پروگرام میں ابرار حسین صاحب کی کوڈنگ کی مدد سے ڈالا تھا۔ اور لاطینی کنورٹر بھی۔
anyway یہ روابط فراہم کرنے کا شکریہ۔
 

نبیل

تکنیکی معاون
ایک چھوٹا سا اپڈیٹ جس میں پروگرام خودکار طور stroke والے لگیچرز کو ایک ساتھ جوڑ دیتا ہے۔یعنی strokeکو سٹینڈرڈ مان لیتا ہے۔ کوئی بھی دو الفاظ درج کریں اور KERN USING STROKE والا بٹن دبائیں۔
ربط
WXKBh4Z.png

مجھے صرف یہ تجسس ہے کہ آپ شیپس کے ٹکراؤ کو جاننے کے لیے کیا طریقہ استعمال کر رہے ہیں؟
 

arifkarim

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

نبیل

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

ترسیمہ جات کی لسٹ کو آپٹمائز کرنے کے سلسلے میں کیا پراگریس ہے؟
 

mohdumar

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

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

arifkarim

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

mohdumar

محفلین
مجھے صرف یہ تجسس ہے کہ آپ شیپس کے ٹکراؤ کو جاننے کے لیے کیا طریقہ استعمال کر رہے ہیں؟
تصویری لفظ کی ہر پکسلز کی قظر میں ہر پکسل کی ویلیو کا جائزہ لیکر کہ یہ ٹرانسپیرنٹ ہے یا سیاہ/سبز۔ اس طرح ہم دو الفاظ کے درمیاں اس قطر کا تعین کرتے ہیں جس میں فاصلہ سب سے کم ہو۔ اس فاصلے کا تعین کر کے دونوں الفاظ کی تصاویر میں سے یہ فاصلہ حذف کر لیتے ہیں۔ بظاہر تو یہ سست رفتار الگورتھم ہے لیکن vb میں الگورتھم کی آپٹیمائزیشن کے بعد یہ بہتریں نتائج دے رہا ہے۔
 

arifkarim

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

mohdumar

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

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

ابھی فالحال یوں نہ کریں کہ رینڈم طور پر ہزار ایک کرننگ پیئرز کا ڈیٹا آپ کو فراہم کردیں تاکہ وولٹ کمپائلیشن کا تجربہ ہو سکے۔
 
تصویری لفظ کی ہر پکسلز کی قظر میں ہر پکسل کی ویلیو کا جائزہ لیکر کہ یہ ٹرانسپیرنٹ ہے یا سیاہ/سبز۔ اس طرح ہم دو الفاظ کے درمیاں اس قطر کا تعین کرتے ہیں جس میں فاصلہ سب سے کم ہو۔ اس فاصلے کا تعین کر کے دونوں الفاظ کی تصاویر میں سے یہ فاصلہ حذف کر لیتے ہیں۔ بظاہر تو یہ سست رفتار الگورتھم ہے لیکن vb میں الگورتھم کی آپٹیمائزیشن کے بعد یہ بہتریں نتائج دے رہا ہے۔
اگر ہم آپ کی بات کو درست طور پر سمجھ سکے ہیں تو آپ دو ترسیموں کے ما بین کم سے کم فاصلہ حاصل کر رہے ہیں وہ بھی اس طرح کہ ایک ترسیمے کے تمام سیاہ پکسلز سے دوسرے ترسیمے کے تمام سیاہ پکسلز کے درمیان یکے بعد دیگرے فاصلے ماپ کر۔ اگر یہ طریقہ کار اپنایا گیا ہے تو اس میں دو مسائل ہیں، اول تو یہ کہ یہ طریقہ کار بے حد سست ہوگا۔ دوم یہ کہ دو ترسیموں کے ما بین کم سے کم فاصلہ ضروری نہیں کہ افقی فاصلہ ہو، وہ عمودی ہو سکتا ہے یا کسی زاویے پر ہو سکتا ہے الا یہ کہ پکسلز کے ما بین فقط افقی فاصلہ ہی ماپا گیا ہو وہ بھی صرف ان پکسلز کے ما بین جو ایک ہی افقی لکیر پر موجود ہوں۔ :) :) :)

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

mohdumar

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

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

لینیئر سرچ کی متبادل الگورتھم تلاش کرنے کی ہماری بھی خواہش تھی۔البتہ اس ضمن میں کچھ ہمارے پلے نہ پڑا۔
 
Top