PDA

View Full Version : هدر فایل فونت در windows



am_abbas65
یک شنبه 25 اردیبهشت 1384, 20:33 عصر
سلام دوستان امیدوارم که موفق باشین

من میخواستم بدونم که هدر فایل فونت چجوری هستش تا یک برنامه font maker فونت بنویسم که user بتونه فونت بسازه ..
من میخوام که بصورت نگاشت مپی بنویسم مثلا یک جدول 8*16 یا 8*8 باشه و user با کلیک بر روی خانه های جدول اون خانه روشن یه خاموش بشه و بعد در یک ماتریس ذخیره کنم و بعد فایل فونت رو ذخیره کنم و بعد در هر برنامه که بخوام فارسی بنویسم بشه از فونت من استفاده کرد.

اگه کمکم کنید ممنون میشم . :D

بابک زواری
یک شنبه 25 اردیبهشت 1384, 23:25 عصر
دوست عزیز اگر شما قصد درست کردن فونتهای ttf رو دارید باید بگم که با این روش نمیتونید
به جواب برسید چون این فونتها اولا Vector هستند ثانیا به شکل فرمول هستند نه نگاشتی
که شما تصور دارید.
فکر شما دقیقا کپی FontEdit تحت داس هست ، بله در داس باید به شکلی که شما میفرمائیید
عمل میکردیم چون در آنجا بحث کاراکتر بود و هر کاراکتر طول و عرض ثابتی داشت ، نمیشد در
آنجا فونت رو بزرگ و کوچک کرد یا به جهات مختلف چرخاند ولی در ویندوز کاملا این مسئله فرق میکنه .


//This is TTF file header
typedef struct _tagTT_OFFSET_TABLE{
USHORT uMajorVersion;
USHORT uMinorVersion;
USHORT uNumOfTables;
USHORT uSearchRange;
USHORT uEntrySelector;
USHORT uRangeShift;
}TT_OFFSET_TABLE;

//Tables in TTF file and there placement and name (tag)
typedef struct _tagTT_TABLE_DIRECTORY{
char szTag[4]; //table name
ULONG uCheckSum; //Check sum
ULONG uOffset; //Offset from beginning of file
ULONG uLength; //length of the table in bytes
}TT_TABLE_DIRECTORY;

//Header of names table
typedef struct _tagTT_NAME_TABLE_HEADER{
USHORT uFSelector; //format selector. Always 0
USHORT uNRCount; //Name Records count
USHORT uStorageOffset; //Offset for strings storage,
//from start of the table
}TT_NAME_TABLE_HEADER;

//Record in names table
typedef struct _tagTT_NAME_RECORD{
USHORT uPlatformID;
USHORT uEncodingID;
USHORT uLanguageID;
USHORT uNameID;
USHORT uStringLength;
USHORT uStringOffset; //from start of storage area
}TT_NAME_RECORD;

بابک زواری
یک شنبه 25 اردیبهشت 1384, 23:27 عصر
این هدر فونت به زبان ++C هست فقط هدر اگر اطلاعات بیشتری میخوای برو اینجا
http://www.codeproject.com/gdi/fontnamefromfile.asp

am_abbas65
دوشنبه 26 اردیبهشت 1384, 10:30 صبح
خیلی ممنون
میخواستم بدونم که در ویندوز به چه روشی میشه این کارو کردو یا اگر بشه با روش بیت مپ این کار رو کرد باید چه مراحلی رو پشت سر گذاشت.و آیا میشه به غیر از فایل ttf این کار را کرد ؟؟ آخه من یه فایل فونت tahoma از سایت برداشتم که خود شما نوشته بودین.

خیلی ببخشید . استاد ما گفته که برنامه font رو بیارید اگه تحت ویندوز باشه باید به vb بنویسید و اگه تحت dos باید با c++ بنویسید .من ++c بلدم و میخوام که تحت ویندوز رو هم یاد بگیرم.

بابک زواری
دوشنبه 26 اردیبهشت 1384, 19:17 عصر
میخواستم بدونم که در ویندوز به چه روشی میشه این کارو کردو یا اگر بشه با روش بیت مپ این کار رو کرد باید چه مراحلی رو پشت سر گذاشت.و آیا میشه به غیر از فایل ttf این کار را کرد ؟؟ آخه من یه فایل فونت tahoma از سایت برداشتم که خود شما نوشته بودین.
همانطور که گفتم با روش بیت مپ بعید میدونم شاید بشه باهاش فونت FON ساخت ولی TTFنه اونی فایلی رو هم که شما برداشتید با نرم افزارهای تغییر و طراحی فونت اصلاح شده بود نه اینکه نوشته شده باشه.


استاد ما گفته که برنامه font رو بیارید اگه تحت ویندوز باشه باید به vb بنویسید و اگه تحت dos باید با c++ بنویسید .من ++c بلدم و میخوام که تحت ویندوز رو هم یاد بگیرم.
استاد شما باید خیلی از مرحله پرت باشه که یک همچین چیزی رو ازتون بخواد این یک پروژه تجاری و در سطحی نیست که یک دانشجو بتونه در عرض یک ترم انجام بده.
شاید منظور استادتون این باشه که یک فونت طراحی کنید بیارید نه برنامه طراحی فونت .
مع الوصف من بازم تو سورسهام نگاه میکنم ، اما مطمئن هستم که با VB ندارم شاید با ++C داشته باشم.