• Welcome to پارسی‌لاتک.
 
از تاریخ ۱۳۹۳/۸/۱۴ به دلیل ارائه خدمات بهتر به سایت جدید پرسش و پاسخ مهاجرت کرده‌ایم؛ از این رو امکان عضویت و ارسال پست در تالار غیرفعال شده است. لطفاً برای پرسیدن سوال‌های خود به سایت جدید مراجعه کنید.

ورود به سایت جدید

به دست آوردن نسبت ابعادی یک عکس

نویسنده فرشاد ترابی, سپتامبر 28, 2014, 02:23:34 بعد از ظهر

« قبلی - بعدی »

فرشاد ترابی

با سلام
فرض کنید در یک متن تعدادی عکس قرار است قرار داده شود. عکسهایی که وجود دارند سه دسته می‌شوند
۱. عکسهایی با ابعاد تقریبا مربع. مثلا نسبت طول به عرض آنها کمتر از ۱.۵ است.
۲. عکسهایی به صورت مستطیل عمودی که نسبت ارتفاع آن به پهنای آن بیش از ۲ است.
۳. عکسهایی به صورت مستطیل افقی که نسبت ارتفاع آن به پهنای آن کمتر از 0.5 است.
حال با توجه به نوع عکس، می‌خواهم ابعاد آنرا به صورتهای متفاوت تنظیم کنم. مثلا برای عکسهای توع ۱، پهنای ۳ سانت، عکسهای ۲ پهنای ۱ سانت و
عکسهای نوع ۳ ارتفاع ۱ سانت.
آیا می‌توان این کار را انجام داد؟

vafa

از اونجایی که گفتید «مثلاً» من تست کامل ابعاد را نوشته‌ام وگرنه با مثال شما تست ابعاد خیلی ساده‌تر است:

\documentclass{article}
\usepackage{graphicx}
\newsavebox\MyGraphicBox
\newcommand*{\IncludeGraphics}[1]{%
    \sbox{\MyGraphicBox}{\includegraphics{#1}}
    \edef\MyGraphicRatio{\dimexpr\number\numexpr\number\dimexpr\ht\MyGraphicBox\relax*65536/\number\dimexpr\wd\MyGraphicBox\relax\relax sp\relax}
    \typeout{\the\ht\MyGraphicBox  /\the\wd\MyGraphicBox =\the\MyGraphicRatio}
    \ifdim\MyGraphicRatio<0.5pt
        \includegraphics[width=1cm]{#1}
    \else
        \ifdim\MyGraphicRatio<1.5pt
            \includegraphics[width=3cm]{#1}
        \else
            \ifdim\MyGraphicRatio>2pt
                \includegraphics[width=1cm]{#1}
            \fi
        \fi
    \fi
}
\begin{document}
\IncludeGraphics{test.jpg}
\end{document}


الگوریتم :

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

vafa

البته توی سوال شما و همچنین کد من تکلیف نسبتی که بین ۱٫۵ و ۲ باشه روشن نیست و هیچ کاری در این صورت انجام نمیشه.

فرشاد ترابی

من الان هرچی تست میکنم مقدار \MyGraphicRatio  را برابر با صفر برمیگردونه و برای همه یک کار انجام میده. یعنی الان خروجی typeout که شما قرار دادید به صورت زیر است
80.29979pt/223.8357pt=0.0pt

vafa

نقل قول از: فرشاد ترابی در سپتامبر 28, 2014, 05:39:16 بعد از ظهر
من الان هرچی تست میکنم مقدار \MyGraphicRatio  را برابر با صفر برمیگردونه و برای همه یک کار انجام میده. یعنی الان خروجی typeout که شما قرار دادید به صورت زیر است
80.29979pt/223.8357pt=0.0pt
من یک دقیقه بعد از نوشتن  کد، آن را تغییر دادم و این مشکل را درست کردم. آیا از نسخه ویرایش شده کد استفاده کرده‌اید؟

فرشاد ترابی

نه من از کد قدیمی استفاده کرده بودم. الان که عوضش کردم درست شد. ممنون.
شرطها را برای کار خودم درست کردم به گونه‌ای که برای تمامی کارها جواب بدهد. هدف به دست آوردن GraphicRatio  بود که به لطف شما محقق شد. ممنون.

وحید دامن‌افشان

نقل قول از: فرشاد ترابی در سپتامبر 28, 2014, 02:23:34 بعد از ظهر
با سلام
فرض کنید در یک متن تعدادی عکس قرار است قرار داده شود. عکسهایی که وجود دارند سه دسته می‌شوند
۱. عکسهایی با ابعاد تقریبا مربع. مثلا نسبت طول به عرض آنها کمتر از ۱.۵ است.
۲. عکسهایی به صورت مستطیل عمودی که نسبت ارتفاع آن به پهنای آن بیش از ۲ است.
۳. عکسهایی به صورت مستطیل افقی که نسبت ارتفاع آن به پهنای آن کمتر از 0.5 است.
حال با توجه به نوع عکس، می‌خواهم ابعاد آنرا به صورتهای متفاوت تنظیم کنم. مثلا برای عکسهای توع ۱، پهنای ۳ سانت، عکسهای ۲ پهنای ۱ سانت و
عکسهای نوع ۳ ارتفاع ۱ سانت.
آیا می‌توان این کار را انجام داد؟
کاربرد این قضیه چیه؟ می‌شه توضیح بدید؟

فرشاد ترابی

من دارم یک مجموعه خلاصه مقاله برای کنفرانس آماده می کنم که در آن نویسندگان مختصری در مورد مقاله خود توضیح میدهند و برای کار خود یک عکس هم
ضمیمه می کنند. اما این عکس میتونه سه حالت داشته باشه که با توجه به شکل عکس که در بالا توضیح دادم، چیدمان کادر متفاوت میشه. نمونه‌ای از کار
در شکل پیوست شده است.

وحید دامن‌افشان

نقل قول از: فرشاد ترابی در سپتامبر 29, 2014, 09:32:59 بعد از ظهر
من دارم یک مجموعه خلاصه مقاله برای کنفرانس آماده می کنم که در آن نویسندگان مختصری در مورد مقاله خود توضیح میدهند و برای کار خود یک عکس هم
ضمیمه می کنند. اما این عکس میتونه سه حالت داشته باشه که با توجه به شکل عکس که در بالا توضیح دادم، چیدمان کادر متفاوت میشه. نمونه‌ای از کار
در شکل پیوست شده است.
۱. الان اون دو تا شکل پایین رو به خاطر صرفه‌جویی در فضای صفحه در کنار متن قرار دادین؟
۲. این کار رو دستی انجام دادید یا از این راه‌حل آقا وفا و به طور خودکار استفاده کردید؟

فرشاد ترابی

1. چون عکسش عمودی هست در کنار متن قرار دادم تا فضای خالی زیاد نشه. اگر پایین صفحه میگذاشتم، به علت ارتفاع زیاد عکس یا باید اونقدر عکس کوچک می‌شد
    که هیچی دیده نمیشد، یا اینکه فضای بسیار زیادی پایین متن قرار میگرفت.
2. در حال حاضر با توجه به راهنمای دکتر کارن‌پهلو این کار به صورت اتوماتیک انجام می‌شه و هیچ کاری دستی صورت نمی‌گیره.

درضمن، از picinpar و wrapfig  هم استفاده کردم که به علت قرار گرفتن در محیطهای minipage  و parbox و این حرفها، همه چیز بهم میخورد. بنابراین ترجیح دادم
اینطوری حروفچینی بشه.