سؤال

عذرًا ، قد يكون هذا أو لا يكون سؤالًا برمجة مباشرة ، لكنني أحاول تغيير حجم لقطات الشاشة باستخدام ImageMagick و Gimp لتضمينه في عرض تقديمي ، لكنه يخرج أكثر ضراوة من تغيير حجمها بواسطة LaTex.

على سبيل المثال ، في Beamer ، قد يكون لديّ أمر لإنقاذ الصورة \includegraphics[width=.5\textwidth]{fig.png}. باستخدام شيء مثل

\begin{frame}
\message{width = \the\textwidth}
\message{height = \the\textheight}
\end{frame}

لقد حصلت على \textwidth و \textheight المعلمات في النقاط (345.69548 ، 261.92444). لذلك لدي نص (في بيثون) يرسل استدعاء النظام إلى ImageMagick:

'convert %s -resize %.6f@ resized_%s' % (f,a,f)

أين a يتم حسابه على النحو \textwidth*\textheight*0.5**2 و f هو اسم الملف. عندما أعود إلى عرض Beamer الخاص بي وأدرج الرقم المغيّر ، \includegraphics{resized_fig.png}, ، يبدو الحجم صحيحًا تقريبًا ولكنه فائقة بالضوء. لقد حاولت أيضًا تغيير حجمها في GIMP (باستخدام واجهة المستخدم الرسومية) ولكن لا حظ أيضًا ... مساعدة؟ شكرًا...

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

المحلول

إذا كنت ترغب في الحفاظ على حدة البكسل ، أي لا تقم بزيادة وحدات البيكسلات ، ولكن تمثلها كمربعات صغيرة ، أقترح هذا النهج:

  1. تحويل صورة PNG إلى EPS/PDF مع Sam2p.

  2. قم بتضمين EPS المحولة أو PDF في المستند الخاص بك كالمعتاد. سيكون كل بكسل مجرد صندوق مستطيل صغير ، وسيبدو هشًا وحادًا ، وسوف يتوسع دون الاستيفاء.

على سبيل المثال ، دعنا نفترض أن لدينا صورة نقطية صغيرة ، والتي نريد إظهارها:

10×10

يمكننا تحويله إلى ناقل PDF مع هذا الأمر:

sam2p 10x10.png PDF: 10x10.pdf

الآن نظرًا لأن لدينا إصدار متجه (حيث يكون كل بكسل مستطيل) ، يمكننا تضمينه في أي مستند ومقياس LaTex بحرية. ستقوم جميع وحدات البكسل ، ولكن لن يتم استقراءها.

علي سبيل المثال،

\documentclass[12pt]{article}
\usepackage[papersize={4cm,4cm},margin=2pt]{geometry}
\usepackage{graphicx}

\begin{document}
\includegraphics[width=0.8\linewidth]{10x10.pdf}
\end{document}

هذا سيبدو هكذا:

10×10 scaled without interpolation

عيوب:

  • من المحتمل أن يكون إصدار PDF من الصورة أكبر عدة مرات من إصدار PNG الأصلي.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top