\ .\" This man page was generated by the Netpbm tool 'makeman' from HTML source. .\" Do not hand-hack it! If you have bug fixes or improvements, please find .\" the corresponding HTML page on the Netpbm website, generate a patch .\" against that, and send it to the Netpbm maintainer. .TH "راهنمای کاربر Pnmtojpeg" 0 "23 April 2007" "netpbm documentation" .SH "نام (NAME)" pnmtojpeg \- تبدیل تصویر با فرمت PNM به فایل فشرده تصویری JPEG/JFIF .UN synopsis .SH "خلاصه دستور (SYNOPSIS)" \fBpnmtojpeg\fP [\fB-exif=\fP\fIfilespec\fP] [\fB-quality=\fP\fIn\fP] [{\fB-grayscale\fP|\fB-greyscale\fP}] [\fB-density=\fP\fIn\fP\fBx\fP\fIn\fP[\fBdpi\fP,\fBdpcm\fP]] [\fB-optimize\fP|\fB-optimise\fP] [\fB-rgb\fP] [\fB-progressive\fP] [\fB-comment=\fP\fItext\fP] [\fB-dct=\fP{\fBint\fP|\fBfast\fP|\fBfloat\fP}] [\fB-arithmetic\fP] [\fB-restart=\fP\fIn\fP] [\fB-smooth=\fP\fIn\fP] [\fB-maxmemory=\fP\fIn\fP] [\fB-verbose\fP] [\fB-baseline\fP] [\fB-qtables=\fP\fIfilespec\fP] [\fB-qslots=n[,...]\fP] [\fB-sample=\fP\fIH\fP\fBx\fP\fIV\fP[,...]] [\fB-scans=\fP\fIfilespec\fP] [\fB-tracelevel=\fP\fIN\fP] \fIfilename\fP .PP حداقل مخفف یکتای هر گزینه قابل قبول است. می‌توانید به جای یک خط تیره از دو خط تیره برای مشخص کردن گزینه‌ها استفاده کنید. همچنین می‌توانید به جای علامت مساوی، از فاصله برای جدا کردن نام گزینه از مقدار آن استفاده نمایید. .UN description .SH "توضیحات (DESCRIPTION)" .PP این برنامه بخشی از .BR "Netpbm" (1)\c \& است. .PP دستور \fBpnmtojpeg\fP فایل تصویر مشخص‌شده با فرمت PBM، PGM یا PPM (یا در صورت عدم تعیین فایل، ورودی استاندارد) را به یک فایل JFIF در خروجی استاندارد تبدیل می‌کند. .PP دستور \fBpnmtojpeg\fP برای ایجاد فایل خروجی از کتابخانه JPEG گروه مستقل JPEG (موسوم به IJG) استفاده می‌کند. برای کسب اطلاعات بیشتر درباره این کتابخانه به نشانی .UR http://www.ijg.org http://www.ijg.org .UE مراجعه کنید. .PP «JFIF» نام صحیح فرمت تصویری است که عموماً با عنوان «JPEG» شناخته می‌شود. از نظر فنی دقیق، JPEG یک روش فشرده‌سازی است. فرمت تصویری که از فشرده‌سازی JPEG استفاده می‌کند و با اختلاف زیاد رایج‌ترین است، JFIF نام دارد. همچنین زیرفرمت خاصی از TIFF وجود دارد که از فشرده‌سازی JPEG استفاده می‌کند. .PP فرمت EXIF یک زیرفرمت از JFIF است (به طور دقیق، یک فایل JFIF که شامل یک هدر EXIF به عنوان نشانگر APP1 است). با تعیین گزینه \fB-exif\fP ، دستور \fBpnmtojpeg\fP یک تصویر EXIF ایجاد می‌کند. .UN options .SH "گزینه‌ها (OPTIONS)" .PP علاوه بر گزینه‌های مشترک بین تمام برنامه‌های مبتنی بر libnetpbm (به‌ویژه \fB-quiet\fP ، بخش .UR index.html#commonoptions گزینه‌های مشترک .UE را ببینید)، دستور \fBpnmtojpeg\fP گزینه‌های خط فرمان زیر را شناسایی می‌کند: .UN basicopts .SS "گزینه‌های پایه‌ای (Basic Options)" .TP \fB-exif=\fP\fIfilespec\fP این گزینه مشخص می‌کند که تصویر خروجی باید EXIF (زیرفرمتی از JFIF) باشد، به این معنی که دارای یک هدر EXIF به عنوان نشانگر JFIF APP1 خواهد بود. محتوای این نشانگر، همان محتوای فایل مشخص‌شده است. مقدار ویژه \fB-\fP به معنی خواندن محتوای هدر EXIF از ورودی استاندارد است. تعیین ورودی استاندارد به صورت همزمان هم برای هدر EXIF و هم برای تصویر ورودی نامعتبر است. .sp فایل EXIF با یک فیلد دو بایتی شروع می‌شود که طول فایل (شامل خود فیلد طول) را به صورت دودویی خالص با اولویت بایت پرارزش‌تر (most significant byte first) مشخص می‌کند. مقدار ویژه صفر برای فیلد طول به این معنی است که هیچ هدر EXIF نباید وجود داشته باشد؛ یعنی همانند عدم استفاده از گزینه \fB-exif\fP است. این قابلیت زمانی مفید است که فایلی را با \fBjpegtopnm\fP از JFIF به PNM تبدیل کرده، سپس آن را دستکاری نموده و مجدداً با \fBpnmtojpeg\fP به JFIF تبدیل می‌کنید، در حالی که نمی‌دانید آیا حاوی هدر EXIF بوده است یا خیر. زمانی که فایل JFIF ورودی فاقد هدر EXIF باشد، دستور \fBjpegtopnm\fP یک فایل EXIF ایجاد می‌کند که تنها شامل دو بایت صفر است. بنابراین، می‌توانید بدون نگرانی از وجود واقعی هدر EXIF، هر هدر EXIF را از JFIF ورودی به JFIF خروجی منتقل کنید. .sp محتوای فایل EXIF پس از فیلد طول، دقیقاً بایت به بایت همان محتوای نشانگر APP1 (بدون احتساب فیلد طول) است که هدر EXIF را تشکیل می‌دهد. .TP \fB-quality=\fP\fIn\fP مقیاس‌بندی جدول‌های کوانتیزاسیون برای تنظیم کیفیت تصویر. مقدار \fIn\fP عددی از 0 (بدترین) تا 100 (بهترین) است؛ مقدار پیش‌فرض 75 می‌باشد. مقادیر زیر حدود 25 ممکن است تصاویری تولید کنند که برخی مفسرها قادر به پردازش و نمایش آن‌ها نباشند. برای اطلاعات بیشتر به توضیحات پایین مراجعه کنید. .TP \fB-grayscale\fP .TP \fB-greyscale\fP .TP \fB-rgb\fP این گزینه‌ها فضای رنگی مورد استفاده در خروجی JFIF را تعیین می‌کنند. \fB-grayscale\fP (یا \fB-greyscale\fP) به معنای ایجاد یک JFIF در مقیاس خاکستری است و در صورت نیاز ورودی رنگی PPM را تبدیل می‌کند. گزینه \fB-rgb\fP به معنای ایجاد یک JFIF با فضای رنگی RGB است و اگر ورودی PPM نباشد، اجرای برنامه با شکست مواجه می‌شود. .sp اگر هیچ‌کدام را مشخص نکنید، در صورتی که ورودی PPM باشد فایل خروجی در فرمت YCbCr و اگر ورودی PBM یا PGM باشد در فرمت مقیاس خاکستری (grayscale) خواهد بود. .sp فرمت YCbCr (که در آن یک رنگ با یک مقدار روشنایی/شدت نور و دو مقدار تفاوت رنگ نمایش داده می‌شود) معمولاً بسیار بهتر از RGB (که در آن یک رنگ با مقادیر قرمز، سبز و آبی نمایش داده می‌شود) فشرده می‌شود. استفاده از RGB نادر است، اما ممکن است تبدیل بین JFIF و PPM با RGB سریع‌تر انجام شود، زیرا همان فضای رنگی مورد استفاده در PPM است. .sp فایل \fBtestimg.ppm\fP که همراه Netpbm ارائه می‌شود، با گزینه \fB-rgb\fP حدود 2.3 برابر بزرگتر از حالت پیش‌فرض YCbCr است و در یک آزمایش، دستور \fBpnmtojpeg\fP برای تبدیل آن 16 درصد زمان CPU بیشتری مصرف کرد. این زمان اضافی احتمالاً نشان می‌دهد پردازش حجم داده‌های فشرده اضافی، تمام زمان صرفه‌جویی‌شده ناشی از عدم نیاز به تبدیل ورودی‌های RGB به YCbCr را مصرف کرده است. .sp فرمت مقیاس خاکستری فضای بسیار کمتری اشغال می‌کند و ایجاد و پردازش آن نسبت به فرمت‌های رنگی زمان کمتری می‌برد، حتی اگر تصویر تنها شامل رنگ‌های سیاه، سفید و خاکستری باشد. .sp گزینه \fB-rgb\fP در Netpbm نسخه 10.11 در اکتبر 2002 اضافه شد. .TP \fB-density=\fP\fIdensity\fP این گزینه اطلاعات چگالی (یا همان وضوح/رزولوشن) ثبت‌شده در تصویر خروجی JFIF را تعیین می‌کند. این گزینه به هیچ وجه بر داده‌های شطرنجی (raster) تأثیر نمی‌گذارد؛ بلکه فقط به برنامه‌ای که JFIF را می‌خواند نحوه تفسیر تصویر شطرنجی را اعلام می‌کند. .sp مقدار چگالی به فرمت \fIx\fP\fBx\fP\fIy\fP همراه با یک واحد اختیاری به صورت \fBdpi\fP یا \fBdpcm\fP دریافت می‌شود. مثال‌ها: \fB1x1\fP ، \fB3x2\fP ، \fB300x300dpi\fP ، \fB100x200dpcm\fP . عدد اول چگالی افقی و عدد دوم چگالی عمودی است. هر یک می‌توانند هر عدد صحیحی بین 1 تا 65535 باشند. مشخص‌کننده واحد به صورت \fBdpi\fP برای نقطه در اینچ یا \fBdpcm\fP برای نقطه در سانتی‌متر است. اگر واحد را مشخص نکنید، اطلاعات چگالی در JFIF با عنوان صریح «چگالی نامشخص» (که با عنوان «ناشناخته» نیز تفسیر می‌شود) ثبت می‌گردد. شاید این بی‌فایده به نظر برسد، اما توجه داشته باشید که حتی بدون تعیین واحد، اعداد چگالی نسبت تصویر (aspect ratio) پیکسل‌ها را مشخص می‌کنند. برای نمونه، \fB1x1\fP نشان می‌دهد پیکسل‌ها مربع هستند و \fB3x2\fP نشان می‌دهد پیکسل‌ها مستطیل‌های عمودی هستند. .sp توجه داشته باشید که اگر چگالی‌های افقی و عمودی متفاوتی را مشخص کنید، تصویر JFIF حاصل یک بازنمایی واقعی از تصویر PNM ورودی \fIنخواهد بود\fP، زیرا \fBpnmtojpeg\fP تصویر شطرنجی را پیکسل‌به‌پیکسل تبدیل می‌کند و پیکسل‌های یک تصویر PNM طبق تعریف مربع هستند. بنابراین اگر با یک تصویر مربعی PNM شروع کنید و گزینه \fB-density=3x2\fP را مشخص نمایید، تصویر JFIF حاصل نسخه فشرده‌شده افقی از تصویر اصلی خواهد بود. با این حال، استفاده از تصویر ورودی با اندکی تفاوت نسبت به PNM استاندارد که در آن پیکسل‌ها مربع نیستند رایج است. در این حالت، گزینه density مناسب بازتولید دقیقی از تصویر شبه-PNM ورودی ارائه می‌دهد. .sp مقدار پیش‌فرض 1x1 در واحدهای نامشخص است. .sp پیش از Netpbm نسخه 10.15 (آوریل 2003)، این گزینه وجود نداشت و دستور \fBpnmtojpeg\fP همواره یک فایل JFIF با چگالی 1x1 در واحدهای نامشخص ایجاد می‌کرد. .TP \fB-optimize\fP بهینه‌سازی پارامترهای کدگذاری آنتروپی را انجام می‌دهد. بدون این گزینه، \fBpnmtojpeg\fP از پارامترهای کدگذاری پیش‌فرض استفاده می‌کند. \fB-optimize\fP معمولاً فایل JFIF را اندکی کوچکتر می‌کند، اما اجرای \fBpnmtojpeg\fP تا حدی کندتر شده و به حافظه بسیار بیشتری نیاز دارد. کیفیت تصویر و سرعت خروج از حالت فشرده (decompression) تحت تأثیر \fB-optimize\fP قرار نمی‌گیرد. .TP \fB-progressive\fP یک فایل JPEG تدریجی (progressive JPEG) ایجاد می‌کند (توضیحات پایین را ببینید). .TP \fB-comment=\fP\fItext\fP یک نشانگر نظر (comment marker) با متن \fItext\fP در خروجی JFIF قرار می‌دهد. .sp بدون این گزینه، هیچ نشانگر نظری در خروجی درج نمی‌شود. .PP گزینه \fB-quality\fP به شما امکان می‌دهد تعادلی میان اندازه فایل فشرده و کیفیت تصویر بازسازی‌شده برقرار کنید: هرچه تنظیم کیفیت بالاتر باشد، فایل JFIF بزرگتر شده و تصویر خروجی به ورودی اصلی نزدیک‌تر خواهد بود. در حالت عادی می‌خواهید از کمترین تنظیم کیفیتی (کوچک‌ترین اندازه فایل) استفاده کنید که هنگام خروج از فشردگی، از نظر بصری با تصویر اصلی غیرقابل تشخیص باشد. برای این منظور، تنظیم کیفیت بین 50 تا 95 نتایج معقولی به همراه دارد؛ مقدار پیش‌فرض 75 معمولاً مناسب است. اگر در کیفیت \fB-quality=75\fP نقصی مشاهده کردید، هر بار مقدار را 5 یا 10 واحد افزایش دهید تا از تصویر خروجی رضایت پیدا کنید (تنظیم بهینه از تصویری به تصویر دیگر متفاوت خواهد بود). .PP تنظیم \fB-quality=100\fP یک جدول کوانتیزاسیون با تمام مقادیر 1 تولید می‌کند که اتلاف در مرحله کوانتیزاسیون را به حداقل می‌رساند (اما همچنان در زیرنمونه‌گیری و همچنین خطای گرد کردن، اتلاف اطلاعات وجود دارد). این تنظیم عمدتاً برای اهداف آزمایشی کاربرد دارد. مقادیر کیفیت بالاتر از 95 برای استفاده عادی توصیه \fIنمی‌شوند\fP؛ زیرا حجم فایل فشرده بدون هیچ بهبود ملموسی در کیفیت تصویر خروجی به شدت افزایش می‌یابد. .PP در جهت مخالف، مقادیر کیفیت زیر 50 فایل‌های بسیار کوچکی با کیفیت تصویر پایین تولید می‌کنند. برای مثال، تنظیمات حدود 5 تا 10 ممکن است برای تهیه نمایه از یک کتابخانه بزرگ تصاویر مفید باشد. برای مشاهده برخی جلوه‌های جالب به سبک کوبیسم، مقدار \fB-quality=2\fP (یا حول‌وحوش آن) را امتحان کنید. (توجه: مقادیر کیفیت زیر حدود 25 جدول‌های کوانتیزاسیون 2 بایتی تولید می‌کنند که در استاندارد JFIF اختیاری در نظر گرفته شده‌اند. دستور \fBpnmtojpeg\fP هنگام تعیین چنین کیفیتی یک پیام هشدار صادر می‌کند، زیرا برخی برنامه‌های دیگر JFIF ممکن است نتوانند فایل حاصل را رمزگشایی کنند. در صورتی که نیاز به تضمین سازگاری در مقادیر کیفیت پایین دارید، از گزینه \fB-baseline\fP استفاده کنید.) .PP گزینه \fB-progressive\fP یک فایل «JPEG تدریجی» ایجاد می‌کند. در این نوع فایل JFIF، داده‌ها در چندین پویش (scan) با کیفیت فزاینده ذخیره می‌شوند. اگر فایل از طریق یک پیوند ارتباطی کند در حال انتقال باشد، رمزگشا می‌تواند با استفاده از اولین پویش خیلی سریع یک تصویر با کیفیت پایین را نمایش دهد و سپس با هر پویش بعدی کیفیت نمایش را بهبود بخشد. تصویر نهایی دقیقاً معادل یک فایل استاندارد JFIF با همان تنظیم کیفیت است و حجم کل فایل تقریباً یکسان بوده و اغلب اندکی کوچکتر است. .PP \fBاحتیاط:\fP فرمت progressive JPEG هنوز به طور گسترده پیاده‌سازی نشده است، بنابراین ممکن است بسیاری از رمزگشاها اصلاً قادر به مشاهده یک فایل JPEG تدریجی نباشند. .PP اگر به دنبال کنترل تعادل میان کیفیت و اندازه فایل هستید، می‌توانید فرمت JPEG2000 را نیز در نظر بگیرید. دستور .BR "pamtojpeg2k" (1)\c \& را ببینید. .UN advancedopts .SS "گزینه‌های پیشرفته (Advanced options)" .TP \fB-dct=int\fP استفاده از روش DCT عدد صحیح (پیش‌فرض). .TP \fB-dct=fast\fP استفاده از روش DCT عدد صحیح سریع (با دقت کمتر). .TP \fB-dct=float\fP استفاده از روش DCT ممیز شناور (floating-point). روش ممیز شناور دقت بسیار اندکی بیشتر از روش int دارد، اما بسیار کندتر است مگر اینکه سیستم شما سخت‌افزار ممیز شناور بسیار سریعی داشته باشد. همچنین توجه داشته باشید که نتایج روش ممیز شناور ممکن است در سیستم‌های مختلف اندکی متفاوت باشد، در حالی که روش‌های عدد صحیح باید در همه جا نتایج یکسانی بدهند. روش عدد صحیح سریع دقت بسیار کمتری نسبت به دو روش دیگر دارد. .TP \fB-arithmetic\fP استفاده از کدگذاری حسابی (arithmetic coding). پیش‌فرض کدگذاری هافمن (Huffman encoding) است. کدگذاری حسابی معمولاً نتیجه کم‌حجم‌تری به همراه دارد. .sp ممکن است برای استفاده از این گزینه به مجوزهای ثبت اختراع نیاز داشته باشید. طبق .UR http://www.faqs.org/faqs/jpeg-faq پرسش‌های متداول JPEG .UE \&، این روش تحت پوشش پتنت‌های متعلق به IBM، AT&T و Mitsubishi قرار دارد. .sp نویسنده FAQ توصیه می‌کند از کدگذاری حسابی (و در نتیجه این گزینه) استفاده نکنید زیرا صرفه‌جویی در حجم آن‌قدر زیاد نیست که دردسرهای قانونی آن را توجیه کند. .sp بیشتر کتابخانه‌های JPEG، از جمله تمام موارد توزیع‌شده توسط گروه مستقل JPEG از حدود سال 1998 به بعد، قادر به کدگذاری حسابی نیستند. دستور \fBpnmtojpeg\fP برای کدگذاری JPEG از یک کتابخانه JPEG استفاده می‌کند (که یا هنگام ساخت باینری \fBpnmtojpeg\fP به آن متصل شده یا در زمان اجرا در سیستم شما در دسترس است). اگر \fBpnmtojpeg\fP با پیام «Sorry, there are legal restrictions on arithmetic coding» یا «Sorry, arithmetic coding not supported» متوقف شود، علت همین مسئله است. .TP \fB-restart=\fP\fIn\fP درج نشانگر راه‌اندازی مجدد JPEG (restart marker) در هر \fIn\fP سطر MCU، یا در صورتی که حرف \fBB\fP را به عدد بچسبانید، در هر \fIn\fP بلوک MCU. مقدار \fB-restart 0\fP (حالت پیش‌فرض) به معنی عدم استفاده از نشانگرهای راه‌اندازی مجدد است. .TP \fB-smooth=\fP\fIn\fP هموارسازی (smoothing) تصویر ورودی برای حذف نویز ترام‌دهی (dithering). مقدار \fIn\fP بین 1 تا 100، شدت هموارسازی را مشخص می‌کند. مقدار 0 (پیش‌فرض) به معنی عدم هموارسازی است. .TP \fB-maxmemory=\fP\fIn\fP تعیین سقف حافظه برای استفاده در پردازش تصاویر بزرگ. مقدار به هزار بایت است، یا اگر حرف \fBM\fP را به انتهای عدد اضافه کنید، به میلیون بایت خواهد بود. برای مثال، \fB-max=4m\fP مقدار 4,000,000 بایت را انتخاب می‌کند. اگر \fBpnmtojpeg\fP به فضای بیشتری نیاز داشته باشد، از فایل‌های موقت استفاده خواهد کرد. .TP \fB-verbose\fP چاپ پیام‌های مربوط به فرآیند تبدیل در جریان خطای استاندارد (Standard Error). این قابلیت می‌تواند در عیب‌یابی مشکلات مفید باشد. .PP گزینه \fB-restart\fP به \fBpnmtojpeg\fP دستور می‌دهد تا نشانگرهای اضافی درج کند که به رمزگشای JPEG امکان می‌دهد پس از رخ دادن خطای انتقال مجدداً همگام‌سازی شود. بدون نشانگرهای شروع مجدد، هرگونه خرابی در یک فایل فشرده معمولاً تصویر را از نقطه بروز خطا تا انتهای تصویر تخریب می‌کند؛ اما با وجود این نشانگرها، خرابی معمولاً به بخش بعد از نشانگر تا نشانگر بعدی محدود می‌شود. البته نشانگرهای راه‌اندازی مجدد فضای اضافی اشغال می‌کنند. ما گزینه \fB-restart=1\fP را برای تصاویری که قرار است روی شبکه‌های غیرقابل اعتماد مانند Usenet منتقل شوند توصیه می‌کنیم. .PP گزینه \fB-smooth\fP ورودی را برای حذف نویزهای ریز فیلتر می‌کند. این گزینه اغلب هنگام تبدیل تصاویر ترام‌دار به JFIF کاربرد دارد: ضریب هموارسازی معتدل بین 10 تا 50 الگوهای ترام در فایل ورودی را حذف می‌کند که منجر به یک فایل JFIF کوچکتر و تصویری با ظاهر بهتر می‌شود. با این حال، ضریب هموارسازی بیش از حد بزرگ تصویر را به طور مشهودی تار خواهد کرد. .UN wizardopts .SS "گزینه‌های جادویی (Wizard Options)" .TP \fB-baseline\fP اجبار به ایجاد جدول‌های کوانتیزاسیون سازگار با بیس‌لاین (baseline-compatible). این کار مقادیر کوانتیزاسیون را حتی در تنظیمات کیفیت پایین به 8 بیت محدود می‌کند. (این سوییچ نام‌گذاری نامناسبی دارد، زیرا تضمین نمی‌کند که خروجی حتماً JPEG بیس‌لاین باشد. برای نمونه، می‌توانید از \fB-baseline\fP و \fB-progressive\fP در کنار یکدیگر استفاده کنید.) .TP \fB-qtables=\fP\fIfilespec\fP استفاده از جدول‌های کوانتیزاسیون ارائه‌شده در فایل متنی مشخص‌شده. .TP \fB-qslots=n[,...]\fP انتخاب اینکه از کدام جدول کوانتیزاسیون برای هر مولفه رنگی استفاده شود. .TP \fB-sample=\fP\fIH\fP\fBx\fP\fIV\fP[,...] تعیین فاکتورهای نمونه‌برداری JPEG برای هر مولفه رنگی. .TP \fB-scans=\fP\fIfilespec\fP استفاده از اسکریپت پویش ارائه‌شده در فایل متنی مشخص‌شده. برای اطلاعات بیشتر درباره اسکریپت‌های پویش به بخش‌های پایین مراجعه کنید. .TP \fB-tracelevel=\fP\fIN\fP سطح ردیابی اشکال‌زدایی را که برنامه هنگام اجرا تولید می‌کند تنظیم می‌کند. مقدار 0 به معنای غیرفعال بودن و حالت پیش‌فرض است. این سطح عمدتاً ردیابی کتابخانه JPEG را کنترل می‌کند و می‌توانید اطلاعات بسیار جالبی در مورد فرآیند فشرده‌سازی به دست آورید. .PP گزینه‌های «جادویی» (wizard) برای آزمایش و تجربه با JPEG در نظر گرفته شده‌اند. اگر دقیقاً نمی‌دانید چه کاری انجام می‌دهید، \fBاز آن‌ها استفاده نکنید\fP. این سوییچ‌ها به طور کامل‌تر در فایل wizard.doc که همراه با کتابخانه JPEG گروه مستقل JPEG ارائه می‌شود مستند شده‌اند. .UN examples .SH "مثال‌ها (EXAMPLES)" .PP این مثال فایل PPM با نام foo.ppm را با ضریب کیفیت 60 فشرده کرده و خروجی را با نام foo.jpg ذخیره می‌کند: .nf \fBpnmtojpeg -quality=60 foo.ppm > foo.jpg\fP .fi .PP در اینجا یک مثال کاربردی‌تر آورده شده است که فرمت BMP را به JFIF تبدیل می‌کند: .nf \fBcat foo.bmp | bmptoppm | pnmtojpeg > foo.jpg\fP .fi .UN loss .SH "اتلاف کیفیت JPEG (JPEG LOSS)" .PP هنگامی که با JPEG فشرده‌سازی انجام می‌دهید، اطلاعات را از دست می‌دهید؛ یعنی کیفیت تصویر حاصل تا حدی کمتر از تصویر اصلی خواهد بود. این یک ویژگی ذاتی خود JPEG است و به برنامه خاصی مربوط نمی‌شود. بنابراین اگر روال معمول Netpbm را انجام دهید و از JFIF به PNM تبدیل کنید، روی آن تغییرات اعمال نمایید و سپس مجدداً به JFIF تبدیل کنید، دچار افت کیفیت خواهید شد. هر چه بیشتر این کار را تکرار کنید، کیفیت بیشتری از دست می‌رود. نقاشی‌ها و طرح‌ها (نمودارها، کارتون‌ها، تصاویر خطی و مواردی از این دست با رنگ‌های کم و لبه‌های تیز) بیشترین آسیب را می‌بینند. .PP برای جلوگیری از این امر، می‌توانید از یک فرمت تصویر فشرده غیر از JPEG استفاده کنید. فرمت‌های PNG و JPEG2000 انتخاب‌های خوبی هستند و Netpbm شامل مبدل‌هایی برای این فرمت‌ها است. .PP اگر ناچارید از JFIF برای یک طرح خطی یا نقاشی استفاده کنید، باید گزینه‌های \fB-quality\fP و \fB-smooth\fP در \fBpnmtojpeg\fP را برای رسیدن به تبدیلی رضایت‌بخش بیازمایید. معمولاً مقدار \fB-smooth 10\fP یا حول‌وحوش آن کمک‌کننده است. .PP به دلیل اتلاف کیفیت، باید تمام ویرایش‌ها و دستکاری‌های لازم روی تصویر را در فرمت دیگری انجام داده و تبدیل به JFIF را به عنوان آخرین مرحله بگذارید. و اگر بتوانید یک نسخه را در فرمت اصلی نگهداری کنید، بسیار بهتر خواهد بود. استفاده از گزینه \fB-optimize\fP در \fBpnmtojpeg\fP هنگام ساخت نسخه «نهایی» برای انتشار یا بایگانی ارزش دارد. همچنین هنگام استفاده از تنظیمات کیفیت پایین برای ایجاد فایل‌های JFIF بسیار کوچک یک مزیت محسوب می‌شود؛ میزان بهبود درصدی اغلب بسیار بیشتر از فایل‌های بزرگتر است. (در حال حاضر، حالت \fB-optimize\fP هنگام تولید فایل‌های تدریجی JPEG به صورت خودکار فعال است). .PP می‌توانید تبدیلات چرخش و بازتاب (قرینه‌سازی) را با برنامه \fBjpegtran\fP که همراه با کتابخانه JPEG گروه مستقل Jpeg ارائه می‌شود، بدون اتلاف کیفیت انجام دهید. برنامه \fBjpegtran\fP از دانش عمیق خود درباره نحوه عملکرد JPEG استفاده می‌کند تا تبدیل را بدون نیاز به باز کردن کامل فشردگی تصویر انجام دهد. .UN otherprog .SH "برنامه‌های دیگر (OTHER PROGRAMS)" .PP برنامه دیگر، \fBcjpeg\fP ، مشابه است. برنامه \fBcjpeg\fP توسط گروه مستقل JPEG نگهداری می‌شود و همراه با همان کتابخانه JPEG ارائه شده است که \fBpnmtojpeg\fP برای تمام کارهای JPEG خود از آن استفاده می‌کند. به همین دلیل، می‌توانید انتظار داشته باشید که از ویژگی‌های به‌روزتر JPEG بهره ببرد. همچنین از آنجا که برای اجرای \fBpnmtojpeg\fP باید کتابخانه را داشته باشید اما برعکس آن صادق نیست، برنامه \fBcjpeg\fP ممکن است به صورت عمومی‌تری در دسترس باشد. .PP از سوی دیگر، \fBcjpeg\fP برخلاف تمام ابزارهای NetPBM مانند \fBpnmtojpeg\fP ، از کتابخانه‌های NetPBM برای پردازش ورودی خود استفاده نمی‌کند. این بدان معناست که احتمال سازگاری کمتری با تمام برنامه‌های دیگری دارد که با فرمت‌های NetPBM کار می‌کنند. همچنین ساختار دستورات \fBpnmtojpeg\fP برخلاف \fBcjpeg\fP ، با سایر ابزارهای Netpbm کاملاً یکپارچه و هماهنگ است. .UN scanscripts .SH "اسکریپت‌های پویش (SCAN SCRIPTS)" .PP از گزینه \fB-scan\fP برای تعیین اسکریپت پویش استفاده کنید. یا از گزینه \fB-progressive\fP برای مشخص کردن یک اسکریپت پویش داخلی خاص بهره ببرید. .PP ماهیت دقیق اسکریپت پویش و فرمت پایه‌ای فایل آن در فایل \fBwizard.doc\fP که همراه کتابخانه JPEG گروه مستقل JPEG عرضه می‌شود، توضیح داده شده است. اسکریپت‌های پویش در \fBpnmtojpeg\fP دقیقاً مشابه \fBcjpeg\fP هستند. .PP این بخش حاوی اطلاعات تکمیلی است که در آن سند وجود ندارد، اما احتمالاً باید می‌بود. .PP نخست، محدودیت‌های متعددی در مورد یک اسکریپت پویش معتبر وجود دارد. کتابخانه JPEG و به تبع آن \fBpnmtojpeg\fP ، هرگونه عدم انطباق با این محدودیت‌ها را به دقت بررسی می‌کنند، اما اطلاعات کمی درباره نحوه عدم انطباق اسکریپت ارائه می‌دهند. پیام‌ها بسیار کلی و گاهی نادرست هستند. .PP برای شروع، ورودی‌های مربوط به ضریب DC باید قبل از هرگونه ورودی برای ضرایب AC قرار گیرند. ضریب DC همان ضریب 0 است و تمام ضرایب دیگر، ضرایب AC هستند. بنابراین در ورودی مربوط به ضریب DC، دو عدد پس از دو نقطه باید 0 و 0 باشند. در ورودی مربوط به ضرایب AC، عدد اول پس از دو نقطه نباید 0 باشد. .PP در یک ورودی DC، مولفه‌های رنگی باید به ترتیب صعودی باشند. برای مثال، عبارت «0,2,1» قبل از دو نقطه اشتباه است. عبارت «0,0,0» نیز نادرست است. .PP در یک ورودی برای ضریب AC، فقط باید یک مولفه رنگی را مشخص کنید؛ یعنی فقط یک عدد می‌تواند قبل از دو نقطه وجود داشته باشد. .PP در اولین ورودی برای یک ضریب مشخص از یک مولفه رنگی مشخص، مقدار «Ah» باید صفر باشد، اما مقدار Al می‌تواند هر شماره بیت معتبری باشد. در ورودی‌های بعدی، Ah باید برابر با مقدار Al از ورودی قبلی (برای همان ضریب و همان مولفه رنگی) باشد و مقدار Al باید یک واحد کمتر از مقدار Ah باشد. .PP اسکریپت در نهایت باید حداقل بخشی از ضریب DC را برای تمام مولفه‌های رنگی مشخص کند. در غیر این صورت، پیام خطای «Script does not transmit all the data» را دریافت خواهید کرد. نیازی به تعیین تمام بیت‌های ضریب DC یا هیچ‌کدام از ضرایب AC نیست. .PP در زمان ساخت کتابخانه JPEG یک گزینه استاندارد برای حذف قابلیت اسکریپت پویش وجود دارد. اگر کتابخانه شما به هر دلیلی با این گزینه کامپایل شده باشد، پیام خطای «Requested feature was omitted at compile time» را دریافت خواهید کرد. .UN environment .SH "محیط (ENVIRONMENT)" .TP \fBJPEGMEM\fP در صورت تنظیم این متغیر محیطی، مقدار آن به عنوان سقف حافظه پیش‌فرض در نظر گرفته می‌شود. مقدار آن همان‌طور که برای گزینه \fB-maxmemory\fP توضیح داده شد تعیین می‌شود. تعیین صریح گزینه \fB-maxmemory\fP بر هر مقداری در \fBJPEGMEM\fP اولویت دارد. .UN seealso .SH "همچنین ببینید (SEE ALSO)" .BR "jpegtopnm" (1)\c \&, .BR "pnm" (1)\c \&, صفحه راهنمای \fBcjpeg\fP\c \&, صفحه راهنمای \fBdjpeg\fP\c \&, صفحه راهنمای \fBjpegtran\fP\c \&, صفحه راهنمای \fBrdjpgcom\fP\c \&, صفحه راهنمای \fBwrjpgcom\fP .PP Wallace, Gregory K. "The JPEG Still Picture Compression Standard", Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44. .UN author .SH "نویسنده (AUTHOR)" دستور \fBpnmtojpeg\fP و این دفترچه راهنما تا حد زیادی از برنامه \fBcjpeg\fP اثر گروه مستقل JPEG اقتباس شده‌اند. سایر بخش‌های برنامه توسط Bryan Henderson در تاریخ 7 مارس 2000 توسعه یافته است. .SH "منبع مستندات (DOCUMENT SOURCE)" این صفحه راهنما توسط ابزار Netpbm با نام «makeman» از منبع HTML تولید شده است. مستندات اصلی در نشانی زیر قرار دارد: .IP .B http://netpbm.sourceforge.net/doc/pnmtojpeg.html .PP