NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3606 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 20 از 24

موضوع: ایجاد فونت با سایز دلخواه برای lcd n96

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2010
    نام
    پیمان احمدی
    نوشته ها
    24
    تشکر
    67
    تشکر شده 42 بار در 9 پست

    New ایجاد فونت با سایز دلخواه برای lcd n96

    سلام. کسی از دوستان میتونه کمک کنه که بتونم روی lcd n96 فونت لاتین با هر سایزی نمایش بدم؟

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    عضو جدید
    تاریخ عضویت
    Nov 2009
    نوشته ها
    18
    تشکر
    5
    تشکر شده 3 بار در 3 پست

    پیش فرض

    منم این سوال و دارم

  4. #3
    تازه وارد
    تاریخ عضویت
    Jun 2012
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام تورو خودا کمک کنید حداقل یه ال سی دی راه بندازم
    msm_mcu@yahoo.com

  5. #4
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    کمک کنید حداقل یه ال سی دی راه بندازم
    پروژه برای راه اندازی السیدی که خیلی زیاده !!! سرچ کنی حتما پیدا میکنی...
    در مورد اون برنامه تولید کد فونت برای السیدی هم باید بگم قبلا یه مورد به چشمم خورده بود ولی پولی بود ...همه فونت ها نبود ولی چندتا فونت با اندازه های مختلف رو داشت ...
    *** اللّهم عجّل لولیک الفرج ***

  6. #5
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    هر فونتی با هر اندازه ای داشته باشی میتونی با scale اندازش رو تغییر بدی

    مثلن من از فونت 8×16 اندازه ی 16×24هم استفاده میکنم!!!

  7. #6
    عضو جدید
    تاریخ عضویت
    Nov 2009
    نوشته ها
    18
    تشکر
    5
    تشکر شده 3 بار در 3 پست

    پیش فرض

    مهندس میشه بیشتر توضیح بدی ؟؟؟ یعنی هر جایی که نوشته فونت 8*16 بنویسیم 16*24؟؟

  8. #7
    عضو جدید
    تاریخ عضویت
    Nov 2009
    نوشته ها
    18
    تشکر
    5
    تشکر شده 3 بار در 3 پست

    پیش فرض

    میشه یکی از اساتید کمک کنن ؟؟؟

  9. #8
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2010
    نام
    پیمان احمدی
    نوشته ها
    24
    تشکر
    67
    تشکر شده 42 بار در 9 پست

    پیش فرض

    آقا من راهشو پیدا کردم. خیلی طولانیه. اما جواب گرفتم. انشالا بخش به بخش توضیح میدم.

  10. کاربران : 3 تشکر کرده اند از شما zander برای ارسال این پست سودمند:


  11. #9
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2010
    نام
    پیمان احمدی
    نوشته ها
    24
    تشکر
    67
    تشکر شده 42 بار در 9 پست

    پیش فرض

    اول از همه تو لینک زیر نرم افزار FontEditor رو download کنید.

    font editor.zip

    بعد که Unzip شد برنامه رو اجرا کنید .
    برنامه که باز شد، روی Import Font کلیک کنید تا فونت های سیستم عاملتون رو نشون بده.
    حالا میتونید فونت دلخواه و سایز مناسبتون رو انتخاب کنید.
    مثلا من Font: Arial 16 رو انتخاب می کنم.
    شما هم فونت دلخواهتون رو انتخاب کنید.
    سپس Save Font و بعد Export Font رو کلیک کنید. با این کار فایل هدر فونت دلخواهتون ساخته میشه.

  12. کاربران : 7 تشکر کرده اند از شما zander برای ارسال این پست سودمند:


  13. #10
    کاربر فعال
    تاریخ عضویت
    Nov 2009
    نوشته ها
    115
    تشکر
    77
    تشکر شده 83 بار در 35 پست

    پیش فرض

    آقا احمدي منتظر توضيحات شما هستيم

  14. تشکرها از این نوشته :


  15. #11
    کاربر فعال ppittl آواتار ها
    تاریخ عضویت
    Sep 2009
    نام
    اکبری
    نوشته ها
    138
    تشکر
    44
    تشکر شده 72 بار در 46 پست

    پیش فرض

    سلام
    من یه برنامه نوشتم که توی یه عکس فونتها رو مینویسی و بعد اون تک تک فونتها رو بیرون میکشه با چندین مدل
    بصورت عکس/بصورت بایت/بصورت بیت/ و مهمتر از همه خروجی بسکام
    سایز فونتها متغیر هستند و هر فونتی بخواهید تو کمتر از چند دقیقه بدون دردسر درست میشه

  16. تشکرها از این نوشته :


  17. #12
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2010
    نام
    پیمان احمدی
    نوشته ها
    24
    تشکر
    67
    تشکر شده 42 بار در 9 پست

    پیش فرض

    با سلام خدمت دوستان عزیزم
    تا اونجا پیش رفتیم که یه هدر فایل برای فونتمون درست کردیم.
    اول باید سراغ فایلمون بریم تا بتونیم ساختارشو بررسی کنیم. وقتی که فایلمون باز شد با Comment های زیر مواجه میشیم که البته بستگی به نوع فونتمون داره:

    File Name : Arial16.h
    Date : 11/15/2012
    Font size in bytes : 0x1A30, 6704
    Font width : 22
    Font height : 24
    Font first char : 0x21
    Font last char : 0xFF
    Font bits per pixel : 1
    Font is compressed : false

    تعاریف بالا عرض، ارتفاع، سایز، اولین و آخرین کاراکتر فونت رو برای ما مشخص کردند که باعث میشه یه طراحی فونت انعطاف پذیری روی هر مدل LCD داشته باشیم. به عنوان مثال یه سطر LCD ممکنه 240 پیکسل داشته باشه. خب حالا عرض فونت ما 22. پس تقریبا 10 یا 11 کاراکتر میتونیم تو این سطر نشون بدیم البته با احتساب فضای خالی حداقل یک پیکسلی بین کاراکترها.
    داخل همون فایل کمی پایین تر با جدول فونت روبرو میشیم مطابق زیر:

    uint8_t __attribute__ ((progmem)) Arial16[] = {
    0x1A, 0x30, 0x16, 0x18, 0x01, 0x21, 0xFF,
    0x02, 0x06, 0x0C, 0x09, 0x11, 0x0C, 0x02, 0x05, 0x05, 0x08, 0x0A, 0x02, 0x06, 0x02, 0x06, 0x0A,
    0x06, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x02, 0x0A, 0x0A, 0x0A, 0x0A, 0x13,
    0x0D, 0x0B, 0x0D, 0x0C, 0x0B, 0x0A, 0x0E, 0x0C, 0x02, 0x08, 0x0C, 0x09, 0x0F, 0x0C, 0x0E, 0x0B,
    0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x15, 0x0E, 0x0E, 0x0C, 0x04, 0x06, 0x04, 0x08, 0x0C, 0x03,
    0x0A, 0x09, 0x09, 0x09, 0x0A, 0x07, 0x09, 0x09, 0x02, 0x03, 0x09, 0x02, 0x0E, 0x09, 0x0A, 0x09,
    0x09, 0x06, 0x09, 0x05, 0x09, 0x0B, 0x0F, 0x0A, 0x09, 0x09, 0x06, 0x02, 0x06, 0x0A, 0x04, 0x0B,
    0x0F, 0x03, 0x0B, 0x06, 0x12, 0x0B, 0x0B, 0x07, 0x15, 0x0F, 0x06, 0x14, 0x0B, 0x0A, 0x07, 0x11,
    0x03, 0x03, 0x06, 0x06, 0x06, 0x0C, 0x15, 0x11, 0x11, 0x0A, 0x06, 0x13, 0x00, 0x00, 0x0B, 0x00,
    0x05, 0x0B, 0x0B, 0x0A, 0x0C, 0x04, 0x0B, 0x07, 0x0F, 0x08, 0x0A, 0x0B, 0x06, 0x0F, 0x0C, 0x07,
    0x0B, 0x06, 0x06, 0x05, 0x0A, 0x0B, 0x04, 0x06, 0x05, 0x05, 0x0B, 0x12, 0x12, 0x12, 0x06, 0x06,
    0x07, 0x04, 0x04, 0x09, 0x03, 0x0D, 0x03, 0x0F, 0x06, 0x0F, 0x0F, 0x0B, 0x0B, 0x0B, 0x07, 0x07,
    0x0A, 0x0A, 0x11, 0x11, 0x17, 0x17, 0x0A, 0x0C, 0x0C, 0x0A, 0x0A, 0x04, 0x11, 0x0C, 0x0D, 0x0B,
    0x0B, 0x0B, 0x07, 0x0B, 0x06, 0x09, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0D, 0x0D, 0x06, 0x06, 0x0B,
    0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0A, 0x0B, 0x0A, 0x0A, 0x00, 0x00, 0x10,

    برای کار با این جدول باید با سیستم اشاره گر ها تو زبان c آشنا باشیم. شمارش این جدول از 0 شروع میشه. به عنوان مثال با اشاره به کد هگز شماره 2، یعنی 0x16 عرض فونت ما مشخص میشه یا با اشاره به کد هگز شماره 3، یعنی 0x18 ارتفاع فونت ما مشخص میشه.
    ارتفاع فونت خیلی مهمه، برای New Line روی LCD، اینم خیلی مهمه. انشالا تو بخش بعد تمام مشخصات فونت رو از تو این جدول بیرون میکشیم.
    البته علاوه بر این که خودمون میتونیم اندازه فونت رو تعریف کنیم توی برنامه نویسی مقیاس هم قرار میدیم.
    انشالا توی بخش بعد همچنین هدر فونت رو آماده می کنیم و یه مطلب دیگه هم اینکه خودم توی این قضیه هنوز ضعف های بزرگی دارم که انشالا به یاری هم مشکل فونت انگلیسی و فارسی رو کامل حل می کنیم.
    ممنونم.

  18. کاربران : 8 تشکر کرده اند از شما zander برای ارسال این پست سودمند:


  19. #13
    عضو جدید
    تاریخ عضویت
    Nov 2009
    نوشته ها
    18
    تشکر
    5
    تشکر شده 3 بار در 3 پست

    پیش فرض

    آقا دستت درد نکنه میشه مابقیشم تند تر بگی ؟؟؟

  20. #14
    مدیرکل سایت kavir آواتار ها
    تاریخ عضویت
    Jun 2007
    نام
    زارعی
    نوشته ها
    3,547
    تشکر
    1,218
    تشکر شده 5,684 بار در 1,801 پست

    پیش فرض

    سلام
    مهندس احمدی مطلب خوبی شروع کردین لطفا تموم شد برای من پیام خصوصی کنید بذارم اول سایت
    با تشکر
    کویر ویدئو راه اندازی شد

    اگر چه دیر ولی برگشتم به جمع دوستان قدیمی....

  21. کاربران : 4 تشکر کرده اند از شما kavir برای ارسال این پست سودمند:


  22. #15
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2010
    نام
    پیمان احمدی
    نوشته ها
    24
    تشکر
    67
    تشکر شده 42 بار در 9 پست

    پیش فرض

    درود بر شما.
    هدر فایل فونتمون ساخته شد. الان وقتشه که کتابخانه فونت رو درستش کنیم. این کتابخانه باید چند تا خاصیت داشته باشه. مراحل چندان در قید و بند ترتیب خاصی نیست. مگر در تابع main.
    1- ممکنه بخواهیم از چند نوع فونت توی پروژه استفاده کنیم. پس اول باید تابع بارگذاری فونتمون آماده بشه.
    2- باید مختصات LCD تعریف بشه. مثلن 240*320 یا بالاتر.... بدلیل اینکه باید بدونیم اگه ارتفاع فونت ما 20 پیکسل بود، تقریبا 12 سطر میتونیم ایجاد کنیم. البته در حالتی که LCD روی مد Landscape باشه.
    3- تابع نقش بندی فونت روی LCD.
    4- بعد از اینکه یک کاراکتر روی LCD نقش بست، باید کاراکتر بعدی به فاصله ی عرض کاراکتر چاپ شده به اضافه یک یا دو پیکسل فاصله چاپ شود.
    5- زمانی که کاراکتری روی LCD نقش میبنده اگه عرض کاراکتر به اضافه کاراکترهای چاپ شده قبلی و فاصله ی بین کاراکترها بیشتر از طول LCD شد، باید New Line ایجا بشه و به اندازه ارتفاع کاراکتر و یک یا دو پیکسل فاصله کرسر ما بیاد پایین و از اونجا فونت ما چاپ بشه.
    ببینید اصولش واقعن سادس. فک کنم سخت ترین جاش مال وقتی باشه که میخاد کاراکتر روی LCD چاپ بشه که اونم چند تا دستور منطقیه که یه سری پیکسل طبق آدرسای ما باید تغییر رنگ بدن.
    انشالا سعی میکنم سریع تر پیش بریم و ظرف این چند روز کتابخونه رو کامل بارگذاری کنیم.

  23. کاربران : 9 تشکر کرده اند از شما zander برای ارسال این پست سودمند:


  24. #16
    کاربر فعال
    تاریخ عضویت
    Nov 2009
    نوشته ها
    115
    تشکر
    77
    تشکر شده 83 بار در 35 پست

    پیش فرض

    آقا منم خيلي موافقم با اين بحث اشنايي با طراحي فونت بللخص شكوندن تابوي فونت فارسي
    اطلاعاتي كه من تا الان بدست اوردم راجب فونت فارسي اينه
    هر كاراكتر فارسي ميتونه چهار حالت داشته باشه
    اول - اخر - وسط - تنها و دو حالت چسبيدن به قبلي و چسبيدن به بعدي كه با يك ارايه 6 ستوني و براي هر كاراكتر اينها رو معلوم ميكنند.
    برای تشخیص حروف
    قبل از انتخاب نوع حرف ، حرف قبل رو چک میکنیم تا بدونم یکی از این (ا - آ - د - ذ - ر - ز - ژ - و - فاصله)حروف هست یا نه بعد قاصله چک میشه مثل این
    1 - اگر حرف قبل یکی از این نه حرف باشد به شرطی که حرف بعدی فاصله باشه از نوع چهارم یا اخر تنها هست
    2 - اگر حرف قبل یکی از این نه حرف باشد به شرطی که حرف بعدی فاصله نباشه از نوع اول یا اول چسبان هست
    3 - اگر حرف قبل یکی از این نه حرف نباشد به شرطی که حرف بعدی فاصله باشد از نوع سوم یا اخر چسبان هست
    4 - اگر حرف قبل یکی از این نه حرف نباشد به شرطی که حرف بعدی فاصله نباشد از نوع ذوم یا وسط هست



    این هم کد اسکی حروف فارسی
    ا = 199
    آ = 194
    ب = 200
    پ = 129
    ت = 202
    ث = 203
    ج = 204
    چ = 141
    ح = 205
    خ = 206
    د = 207
    ذ = 208
    ر = 209
    ز = 210
    ژ = 142
    س = 211
    ش = 212
    ص = 213
    ض = 214
    ط = 216
    ظ = 217
    ع = 218
    غ = 219
    ف = 221
    ق = 222
    ک = 223
    گ = 144
    ل = 225
    م = 227
    ن = 228
    و = 230
    ه = 229
    ی = 236

    يه فايل هم در ضميمه ميزارم كه راجب اين چيزايي كه گفتم هست.خودتون ببينيد
    دوستان اگر اطلاعات تازه تري دارند بگن

    البته ناگفته نماند قسمتي ار اينا رو از پست هاي دوستاني مثل اقاي polestar ذكر كردم
    فايل هاي پيوست شده فايل هاي پيوست شده

  25. کاربران : 10 تشکر کرده اند از شما m_online3710 برای ارسال این پست سودمند:


  26. #17
    عضو جدید
    تاریخ عضویت
    Nov 2009
    نوشته ها
    18
    تشکر
    5
    تشکر شده 3 بار در 3 پست

    پیش فرض

    مهندس احمدی منتظریم

  27. تشکرها از این نوشته :


  28. #18
    مدیرکل سایت kavir آواتار ها
    تاریخ عضویت
    Jun 2007
    نام
    زارعی
    نوشته ها
    3,547
    تشکر
    1,218
    تشکر شده 5,684 بار در 1,801 پست

    پیش فرض

    منم منتظرم خیلی خوب پیش میرید
    کویر ویدئو راه اندازی شد

    اگر چه دیر ولی برگشتم به جمع دوستان قدیمی....

  29. تشکرها از این نوشته :


  30. #19
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2010
    نام
    پیمان احمدی
    نوشته ها
    24
    تشکر
    67
    تشکر شده 42 بار در 9 پست

    پیش فرض

    دورد بر شما.
    بابت اینکه مدتی نبودم معذرت میخام.
    با تشکر از آقای m_online
    خب ما یه هدر فونت داریم مثلن برای Arial16
    حالا باید یه هدر واسه نمایش فونتمون رو LCD بسازیم.
    اول به سراغ توابع میریم. البته سعیم اینه که به صورت گام به گام پیش بریم. از تمام دوستانی که این مطالبو میخونن، استدعا دارم کمو کاستشو گوشزد کنن تا یه تابع درست و استانداردی آماده کنیم.
    کتابخونمونو رو با عنوان font.h میسازیم

    کد:
    #define GetMaxY() 319
    #define GetMaxX() 239
    const unsigned char *FontPointer;
    unsigned char rot = 0;
    unsigned char Reverse = 0;
    unsigned char Horizontal = 1;
    unsigned char FontFixed = 0;
    unsigned char NonTransparence = 0;
    unsigned char FontWidth;
    unsigned char FontHeight;
    unsigned char FontSize;
    unsigned char FirstChar;
    unsigned char LastChar;
    unsigned char CharWidth;
    unsigned char FontXScale = 1;
    unsigned char FontYScale = 1;
    unsigned char FontSpace = 1;
    unsigned int CursorX = 0;
    unsigned int CursorY = 0;
    خب حالا بررسی میکنیم
    GetMaxY و GetMaxX ظول و عرض lcd ما رو مشخص میکنن که 320 در 240 که البته ما اینجا شمارشمون از 0 شروع میشه
    1- *Font Pointer اشاره گریه به جدول فونت ما که قبلن آمادش کردیم.
    2- rot منظور چرخشه که صفر نماد 0 و 1 به معنی 90 درجه است.
    3- reverse به معنی برعکس شدن جهت text روی lcd.
    4- horizontal یعنی lcd رو در مد portrait که برابر است با 1 و 0 یعنی در مد landscape. مثلن در lcdn96 portrait = 240 * 320
    5- FontFixed یعنی دارای نسبت اندازه باشه1 یا فونت ثابت باشه 0
    6- NonTransparence یعنی شفاف باشه(1) یا نباشه(0)
    7- FontWidth متغیر عرض فونتمونه
    8- FontHeight متغیر ارتفاع فونتمونه
    9- FontSize متغیر سایز فونتمونه
    10 - FirstChar متغیر اولین کاراکتر
    11- LastChar متغیر آخرین کاراکتر
    12- CharWidth متغیر عرض کاراکتر در حال نمایش
    13- FontXScale متغیر مقیاس عرض فونت
    14- FontYScale متغیر مقیاس ارتفاع فونت
    15- FontSpace فضای خالی بین فونت ها
    16- CursorX موقعیت x
    17- CursorY موقعیت y

    اینا رو باید تو فایل Font.c ذخیره کنیم.
    البته باید یه فایل Font.h هم همزمان درست کنیم و مقادیر زیر رو درونش بریزیم:

    کد:
    #ifndef _FONT_H_
    #define _FONT_H_
    
    
    #include <string.h>
    
    
    #define PROGMEM_read_b(x) (unsigned char)x
    
    /////////////////////////////////////////////////////////////////////
    
    extern unsigned char rot;
    extern unsigned char Reverse;
    extern unsigned char Horizontal;
    extern unsigned char FontFixed;
    extern unsigned char NonTransparence;
    extern unsigned char FontWidth;
    extern unsigned char FontHeight;
    extern unsigned char FontXScale;
    extern unsigned char FontYScale;
    extern unsigned char FontSpace;
    
    extern unsigned int CursorX;
    extern unsigned int CursorY;
    اینا تو هدر فایلمون جداگونه تعریف میشن.
    انشالا در اولین فرصت ظرف یکی دو روز آینده ادامه میدیم.

  31. کاربران : 10 تشکر کرده اند از شما zander برای ارسال این پست سودمند:


  32. #20
    عضو جدید
    تاریخ عضویت
    Nov 2009
    نوشته ها
    18
    تشکر
    5
    تشکر شده 3 بار در 3 پست

    پیش فرض

    مهندس چی شد ؟؟؟؟

  33. تشکرها از این نوشته :


صفحه 1 از 2 12 آخرینآخرین

موضوعات مشابه

  1. ساخت میز uv
    توسط sadeghbakhshi در انجمن گفت و گوي آزاد
    پاسخ: 3
    آخرين نوشته: 07-09-2013, 21:24
  2. میز کار من
    توسط safavism در انجمن پست های قدیمی و بی محتوا
    پاسخ: 5
    آخرين نوشته: 12-07-2013, 14:29
  3. تمایز مانع و سطح شیبدار برای ربات
    توسط masoud.1222 در انجمن سیستم های ریاتیک و CNC
    پاسخ: 2
    آخرين نوشته: 07-02-2013, 21:10
  4. نمایش میز کار الکترونیکی ها
    توسط armstk در انجمن گفت و گوي آزاد
    پاسخ: 213
    آخرين نوشته: 28-08-2012, 02:30
  5. پروژه اسرار آرار آمیز یک دانشجو !
    توسط agape در انجمن گفت و گوي آزاد
    پاسخ: 0
    آخرين نوشته: 01-01-2012, 18:19

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •