تحويل الإحداثيات EMR_LINETO (X ، Y) إلى مرتين
سؤال
أنا أعمل على تحويل ملف EMF إلى ملف RTF.
أواجه مشكلة في تحويل إحداثيات (x ، y) (في سجل emr_lineto) إلى Twips.
لذا يرجى نشر عامل التحويل.
المحلول
twip هو العشرين من نقطة ، والنقطة هي 1/72 بوصة. لذلك إذا لم يكن هناك تحجيم في metafile ، فيجب أن يكون TWIP 1/1440 بوصة. إذا كنت تتحول من ، على سبيل المثال ، شاشة وحدات البكسل إلى Twips ، فستستخدم GetDevicEcaps لمعرفة عدد وحدات البكسل لكل بوصة. لذا؛
TwipsX = PixelsX * 1440 div GetDeviceCaps(DC, LOGPIXELSX);
لا تنتمي إلى StackOverflow