Ppmshift User Manual(0) Ppmshift User Manual(0)

ppmshift - جابجایی تصادفی خطوط پیکسل‌های تصویر PPM برای ایجاد جلوه بصری

ppmshift shift [ppmfile]

این برنامه بخشی از Netpbm(1)است.

دستور ppmshift یک تصویر PPM را به عنوان ورودی می‌خواند. این برنامه هر سطر از داده‌های تصویر را به اندازه یک مقدار تصادفی در محدوده shift پیکسل، به سمت چپ یا راست جابجا می‌کند. توزیع تصادفی از نوع یکنواخت است و مرکز آن روی حرکت صفر قرار دارد.

تولید مقادیر تصادفی در نسخه‌های پیش از Netpbm 10.37 (دسامبر ۲۰۰۶) محدود بود؛ اگر برنامه را دو بار در یک ثانیه یکسان اجرا می‌کردید، ممکن بود خروجی کاملاً یکسانی دریافت کنید.

این جلوه‌ای بود که نویسنده قصد داشت از آن برای آزمایش‌های MPEG استفاده کند. متأسفانه این برنامه برای این منظور مفید نیست، زیرا الگوهای بیش از حد تصادفی ایجاد می‌کند که برای پویانمایی مناسب نیست. با این حال، ممکن است نتایج جالبی روی تصاویر ثابت ایجاد کند.

هیچ گزینه خط فرمانی به طور اختصاصی برای ppmshift تعریف نشده است، اما این برنامه گزینه‌های مشترک تمام برنامه‌های مبتنی بر libnetpbm را می‌شناسد (به گزینه‌های مشترک مراجعه کنید).

این نمونه را بررسی کنید: تصویر مورد علاقه خود را از یک منبع تصویر مانند alt.binaries.pictures.supermodels (یا هر منبع تصویر دیگری) ذخیره کرده، آن را به فرمت ppm تبدیل کنید و با فرض اینکه ابعاد تصویر ۸۰۰x۶۰۰ پیکسل است، آن را مثلاً به صورت زیر پردازش کنید:

# نیمه بالایی را بردارید و آن را دست‌نخورده باقی بگذارید
pamcut -top=0 -width=800 -height=300 cs.ppm >upper.ppm
# نیمه پایینی را بردارید، آن را وارونه کنید، نور آن را کم کنید و کمی تغییر شکل دهید
pamcut -top=300 -width=800 -height=300 cs.ppm | \
    pamflip -topbottom | \
    ppmdim 0.7 | \
    ppmshift 10 >lower.ppm
# و دو قطعه را به یکدیگر متصل کنید
pamcat -topbottom upper.ppm lower.ppm >newpic.ppm

تصویر حاصل به گونه‌ای به نظر می‌رسد که گویی تصویر روی سطح آبی با امواج ملایم منعکس شده است.

ppm(1), pamcut(1), pamflip(1), ppmdim(1), pamcat(1)

حق نشر (C) ۱۹۹۳ متعلق به Frank Neumann است.

این صفحه راهنما توسط ابزار 'makeman' متعلق به Netpbm از منبع HTML تولید شده است. مستندات اصلی در نشانی زیر قرار دارد:

http://netpbm.sourceforge.net/doc/ppmshift.html
20 November 2008 netpbm documentation