سؤال

باستخدام GDI+ لرسم النص على الزجاج:

graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);

ستلاحظ أن النصوص الممكّن من ClearType يسحب جداً ضعيف على الزجاج:

alt text

ولكن مع تعطيل الزجاج ، بالطبع ، ارسم جيدًا:

alt text

عن طريق المقارنة هنا مكافحة الخطية تنعيم الخط:

alt text

وهنا لا تجانس الخط:

alt text

ملحوظة: لا يبدو أن تجانس الخط أفضل مما يفعله حقًا لأن Stackoverflow يقيم الصور الموجودة على شاشتك.

كيف أرسم نص واضح على الزجاج؟

ملحوظات

  • Win32 الأصلي
  • لا .NET (بمعنى آخر محلي)
  • ليس winforms (بمعنى آخر محلي)
  • GDI+ (بمعنى آخر محلي)

ما تقترحه مارك هو أنه لا يمكنك احترام تفضيلات المستخدم لتقديم النص (أي "SystemDefault". ClearType لا يعمل على الزجاج ، ولا يمكنك استخدامه.

بمعنى آخر ، إذا كنت تقدم على الزجاج ، فيجب عليك تجاوز النص مع:

graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);

وإلا يجب ترك TextRenderingHint في الافتراضي TextRenderingHintSystemDefault.

أنظر أيضا

هل كانت مفيدة؟

المحلول

المشكلة متأصلة في طريقة تنفيذ الرسم. يتم رسم جميع النص على خلفية سوداء ، ثم تم تركيبها على خلفية زجاجية ؛ يتم دمج تجانس الخط شبه الشفاف مع الأسود لجعل الأسود شبه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top