.\" -*- mode: nroff -*- .AM .ds V 1.96 .ds E " \-\- .if t .ds E \(em .de Op .BR "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" .. .de Oa .IR "\fB\\$1\& \|\fI\\$2" "\\$3" "\\$4" "\\$5" "\\$6" .. .de Qo .RB \(oq "\\$1" "\(cq\\$2" .. .de Qa .BI "\fR\(oq\fB\\$1" " \\$2" " \\$3" " \\$4" "\fR\(cq\\$5" .. .de Sp .if n .sp .if t .sp 0.4 .. .de Ix .TP 25 \\$1 .nh \\$2 .hy .. .de Es .Sp .RS 5 .nf .. .de Ee .fi .RE .PP .. .de Xs .RS 5 .nf .. .de Xe .fi .RE .. .TH GIFSICLE 1 "26 February 2025" "Version \*V" .SH "نام (NAME)" gifsicle \- ایجاد، ویرایش، دستکاری و استخراج اطلاعات تصاویر و پویانمایی‌های GIF .SH "خلاصه دستور (SYNOPSIS)" .B gifsicle \%[گزینه‌ها، فریم‌ها و نام فایل‌ها].\|.\|. ' .SH "توضیحات (DESCRIPTION)" دستور .B gifsicle تصاویر و پویانمایی‌های GIF را ایجاد، ویرایش و دستکاری کرده و اطلاعات مربوط به آن‌ها را چاپ می‌کند. .PP به‌طور معمول، .B gifsicle فایل‌های ورودی GIF را با توجه به گزینه‌های خط فرمان پردازش کرده و نتیجه را در خروجی استاندارد می‌نویسد. برای نمونه، گزینه .Op \-i به .B gifsicle می‌گوید که ورودی‌های خود را به صورت درهم‌بافته (interlaced) پردازش کند: .Es \fBgifsicle \-i < pic.gif > interlaced-pic.gif\fR .Ee .PP به صورت پیش‌فرض، .B gifsicle دو یا چند فایل ورودی را در قالب یک پویانمایی کتابچه‌ای (\(lqflipbook\(rq) با یکدیگر ترکیب می‌کند: .Es \fBgifsicle pic1.gif pic2.gif pic3.gif > animation.gif\fR .Ee از گزینه‌هایی مانند .Op \-\-delay ", " \-\-loopcount "، و " \-\-optimize برای تنظیم دقیق پویانمایی‌های خود استفاده کنید. .PP برای اصلاح درجا (in-place) فایل‌های GIF، از گزینه .Op \-\-batch استفاده کنید. با .Op \-\-batch ، دستور .B gifsicle به‌جای نوشتن فایل جدید در خروجی استاندارد، فایل‌های مشخص‌شده را مستقیماً ویرایش می‌کند. برای درهم‌بافتن تمام فایل‌های GIF در پوشه جاری، می‌توانید این دستور را اجرا کنید: .Es \fBgifsicle \-\-batch \-i *.gif .Ee .PP کاربران تازه‌کار ممکن است بخواهند مستقیماً به بخش مثال‌ها در انتهای صفحه مراجعه کنند. ' .SH "نمایه مفاهیم (CONCEPT INDEX)" ' مفاهیم در سمت راست و گزینه‌های مرتبط .B gifsicle در سمت چپ قرار دارند. ' .Sp .PD 0 .Ix "پویانمایی‌ها، تغییر دادن" "انتخاب فریم، تغییرات فریم، و غیره" .Ix "\ \ \ نحوه پاک‌سازی (disposal)" "\fB\-\-disposal\fP" .Ix "\ \ \ تکرار (looping)" "\fB\-\-loopcount\fP" .Ix "\ \ \ بخش‌هایی از آن" "انتخاب فریم‌ها (frame selections)" .Ix "\ \ \ کوچک‌تر کردن حجم" "\fB\-\-optimize\fP, \fB\-\-colors\fP, \fB\-\-lossy\fP" .Ix "\ \ \ سرعت" "\fB\-\-delay\fP" .Ix "خروجی معیوب" "\fB\-\-careful\fP" .Ix "رنگ پس‌زمینه" "\fB\-\-background\fP" .Ix "رنگ‌ها، تغییر دادن" "\fB\-\-change\-color\fP, \fB\-\-use\-colormap\fP, \fB\-\-dither\fP, \fB\-\-transform\-colormap\fP" .Ix "\ \ \ کاهش تعداد" "\fB\-\-colors\fP, \fB\-\-dither\fP, \fB\-\-gamma\fP" .Ix "توضیحات (Comments)" "\fB\-\-comment\fP" .Ix "افزونه‌ها (Extensions)" "\fB\-\-extension\fP, \fB\-\-app\-extension\fP, \fB\-\-extension\-info\fP" .Ix "اندازه فایل" "\fB\-\-optimize\fP, \fB\-\-unoptimize\fP, \fB\-\-colors\fP, \fB\-\-lossy\fP" .TP 30 تبدیل‌های تصویر .Ix "\ \ \ برش زدن (cropping)" "\fB\-\-crop\fP, \fB\-\-crop\-transparency\fP" .Ix "\ \ \ قرینه‌سازی (flipping)" "\fB\-\-flip\-*\fP" .Ix "\ \ \ تغییر اندازه (resizing)" "\fB\-\-resize\fP, \fB\-\-scale\fP" .Ix "\ \ \ چرخاندن (rotating)" "\fB\-\-rotate\-*\fP" .Ix "مقیاس خاکستری (Grayscale)" "\fB\-\-use\-colormap\fP" .Ix "درهم‌بافی (Interlacing)" "\fB\-\-interlace\fP" .Ix "موقعیت‌دهی فریم‌ها" "\fB\-\-position\fP" .Ix "صفحه نمایش منطقی" "\fB\-\-logical\-screen\fP" .Ix "انتخاب فریم‌ها" "گزینه‌های انتخاب فریم (مانند \fB'#0'\fP)" .Ix "شفافیت (Transparency)" "\fB\-\-transparent\fP" .Ix "هشدارها" "\fB\-\-no\-warnings\fP" .PD ' .SH "خط فرمان (COMMAND LINE)" خط فرمان .B gifsicle شامل فایل‌های ورودی GIF و گزینه‌ها است. بیشتر گزینه‌ها با یک خط تیره (\-) یا علامت مثبت (+) شروع می‌شوند؛ گزینه‌های انتخاب فریم که نوعی گزینه به شمار می‌روند، با علامت هش (#) آغاز می‌گردند. هر مورد دیگری به عنوان یک فایل ورودی GIF در نظر گرفته می‌شود. .PP دستور .B gifsicle فایل‌های ورودی GIF را به ترتیب خوانده و پردازش می‌کند. اگر هیچ فایل ورودی GIF مشخص نشود، یا نام‌فایل ویژه \(oq\-\(cq داده شود، ورودی از ورودی استاندارد (standard input) خوانده می‌شود. .PP دستور .B gifsicle در صورتی که هیچ خطایی رخ ندهد با کد وضعیت 0 و در غیر این صورت با کد وضعیت 1 خارج می‌شود. ' .SH "گزینه‌ها (OPTIONS)" هر گزینه دارای یک فرم کامل و طولانی است: .Qo \-\-long\-descriptive\-name . نیازی به تایپ کامل نام توصیفی طولانی نیست، بلکه کافی است تا حدی تایپ شود که نام آن بدون ابهام باشد. .PP برخی گزینه‌ها یک فرم کوتاه نیز دارند: .Qo \-X . اگر گزینه‌های کوتاه آرگومانی دریافت نکنند، می‌توانید آن‌ها را با یکدیگر ترکیب کنید: .Qo \-IIb معادل با .Qo "\-I \-I \-b" است. اما در مورد گزینه‌هایی که آرگومان می‌پذیرند باید دقت کرد: .Qo \-cblah به معنی .Qo "\-c \fRblah" است، نه .Qo "\-c \-b \-l \-a \-h" . .PP بسیاری از گزینه‌ها دارای حالت معکوس نیز هستند: .Qo \-\-no\-option که آن گزینه را غیرفعال می‌کند. همچنین می‌توانید یک گزینه کوتاه .Qo \-X را با نوشتن .Qo \+X غیرفعال کنید. ' .\" ----------------------------------------------------------------- .SS "گزینه‌های حالت (Mode Options)" گزینه‌های حالت به .B gifsicle می‌گویند چه نوع خروجی‌ای تولید کند. حداکثر یک گزینه حالت می‌تواند مشخص شود و باید پیش از هر فایل ورودی GIF بیاید. .TP 5 .Op "\-\-merge" ", " "\-m" ' تمام فایل‌های ورودی GIF را در یک فایل با چندین فریم ترکیب کرده و آن فایل را در خروجی استاندارد می‌نویسد. این حالت پیش‌فرض است. ' .TP .Op \-\-batch ", " \-b ' هر فایل ورودی GIF را با خواندن و نوشتن مستقیم روی همان فایل، درجا (in place) اصلاح می‌کند. (فایل‌های GIF که از ورودی استاندارد خوانده شوند، در خروجی استاندارد نوشته می‌شوند.) ' .TP .Op \-\-explode ", " \-e ' برای هر فریم از هر فایل ورودی، یک فایل خروجی GIF جداگانه ایجاد می‌کند. نام فایل‌های خروجی به صورت \(oqxxx.000\(cq، \(oqxxx.001\(cq و الی آخر خواهد بود، که در آن \(oqxxx\(cq نام فایل ورودی (یا نام تعیین‌شده توسط .Qo \-\-output ) و پسوند عددی شماره فریم است. ' .TP .Op \-\-explode\-by\-name ", " \-E ' مشابه .Op \-\-explode "،" اما فریم‌های نام‌گذاری‌شده را به‌جای \(oqxxx.\fIframe-number\fR\(cq در فایل‌هایی با نام \(oqxxx.\fIname\fR\(cq ذخیره می‌کند. فریم‌ها با استفاده از گزینه .Qo \-\-name نام‌گذاری می‌شوند. ' .\" ----------------------------------------------------------------- .SS "گزینه‌های عمومی (General Options)" گزینه‌های عمومی، اطلاعات چاپ‌شده توسط .B gifsicle و محل نوشتن خروجی را کنترل می‌کنند. گزینه‌های اطلاعاتی و .Op \-\-verbose را می‌توان با .Qo \-\-no\-X غیرفعال کرد. ' .Sp .PD 0 .TP 5 .Op \-\-info ", " \-I ' توضیحات خوانا برای انسان از هر فایل ورودی GIF را در خروجی استاندارد، یا فایلی که با .Op \-o مشخص کرده‌اید، چاپ می‌کند. این گزینه خروجی عادی را غیرفعال می‌کند و نمی‌توان آن را با گزینه‌های حالت مانند .Op \-\-batch ترکیب کرد. با این حال، اگر دو بار گزینه .Op \-\-info یا .Op \-I را مشخص کنید، اطلاعات در خروجی خطای استاندارد (stderr) چاپ شده و خروجی عادی نیز طبق روال تولید می‌شود. ' .Sp .TP 5 .Op \-\-color\-info ", " \-\-cinfo ' مشابه .Op \%\-\-info "،" اما علاوه بر آن، اطلاعاتی درباره جدول رنگ‌های (colormap) فایل‌های ورودی نیز چاپ می‌کند. ' .Sp .TP 5 .Op \-\-extension\-info ", " \-\-xinfo ' مشابه .Op \%\-\-info "،" اما افزونه‌های ناشناخته GIF را در قالبی شبیه به .BR hexdump (1) چاپ می‌کند. ' .Sp .TP 5 .Op \-\-size\-info ", " \-\-sinfo ' مشابه .Op \%\-\-info "،" اما اطلاعات مربوط به اندازه تصاویر فشرده‌شده را نیز چاپ می‌کند. ' .Sp .TP 5 .Op \-\-help ", " \-h ' اطلاعات نحوه استفاده از دستور را چاپ کرده و خارج می‌شود. ' .Sp .TP .Oa \-o file .TP .Oa \-\-output file ' خروجی را به .IR file ارسال می‌کند. نام ویژه \(oq-\(cq به معنی خروجی استاندارد است. ' .Sp .TP .Op \-\-verbose ", " \-V ' اطلاعات روند پیشرفت (فایل‌های خوانده‌شده و نوشته‌شده) را در خروجی خطای استاندارد چاپ می‌کند. ' .Sp .TP .Op \-\-no\-warnings ", " \-w ' از نمایش تمام پیام‌های هشدار جلوگیری می‌کند. ' .Sp .TP .Op \-\-no\-ignore\-errors ' در صورت مواجهه با یک فایل GIF دارای خطاهای جدی، با کد وضعیت 1 خارج می‌شود. رفتار پیش‌فرض این است که تلاش برای ادامه پردازش انجام شود. ' .Sp .TP .Op \-\-version ' شماره نسخه و اطلاعات کوتاهی در مورد عدم ضمانت را چاپ کرده و خارج می‌شود. ' .Sp .PD 0 .TP 5 .Op \-\-careful ' فایل‌های GIF کمی بزرگ‌تری می‌نویسد که از بروز باگ در برخی پیاده‌سازی‌های دیگر GIF جلوگیری می‌کند. برخی نسخه‌های جاوا و اینترنت اکسپلورر قادر به نمایش صحیح فایل‌های کم‌حجم و بهینه‌ای که Gifsicle تولید می‌کند نیستند. اگر در نمایش یک تصویر خاص مشکل دارید، از گزینه .Op \-\-careful استفاده کنید. ' .Sp .TP .Op \-\-conserve\-memory ' مصرف حافظه را به بهای افزایش زمان پردازش کاهش می‌دهد. این گزینه هنگام پردازش فایل‌های حجیم GIF روی رایانه‌هایی با حافظه محدود مفید است. برای غیرفعال کردن از .Op \-\-no\-conserve\-memory استفاده کنید. ' .Sp .TP .Op \-\-nextfile ' امکان الحاق چند تصویر GIF پشت سر هم را در فایل‌های ورودی فراهم می‌کند. اگر یک نام‌فایل چند بار در خط فرمان تکرار شود، \fBgifsicle\fR در هر بار یک تصویر جدید از آن فایل می‌خواند. این گزینه به اسکریپت‌ها کمک می‌کند از ایجاد فایل‌های موقت بی‌نیاز شوند. برای نمونه، برای ساخت یک فایل متحرک GIF با سه فریم و تاخیرهای متفاوت، می‌توانید دستور "\fBgifsicle \-\-nextfile \-d10 \- \-d20 \- \-d30 \- > out.gif\fR" را اجرا کرده و سه تصویر GIF را به ترتیب در ورودی استاندارد \fBgifsicle\fR بنویسید. ' .Sp .TP .Op \-\-multifile ' مشابه .Op \-\-nextfile "،" اما .I تا جای ممکن تصاویر GIF بیشتری را از هر فایل می‌خواند. این گزینه برای اسکریپت‌ها در نظر گرفته شده است. برای نمونه، جهت ترکیب تعداد نامشخصی تصویر GIF در قالب یک پویانمایی، دستور "\fBgifsicle \-\-multifile \- > out.gif\fR" را اجرا کرده و تصاویر GIF را به ترتیب در ورودی استاندارد \fBgifsicle\fR بنویسید. هرگونه انتخاب فریم تنها روی آخرین فایل در زنجیره اعمال خواهد شد. ' .PD ' .\" ----------------------------------------------------------------- .SS "انتخاب فریم‌ها (Frame Selections)" یک عبارت انتخاب فریم به .B gifsicle می‌گوید که از کدام فریم‌های فایل ورودی جاری استفاده کند. این عبارات تنها برای پویانمایی‌ها کاربرد دارند، زیرا فایل‌های GIF غیر متحرک تنها یک فریم دارند. ساختارهای مجاز برای تعیین فریم‌ها عبارتند از: .Sp .PD 0 .TP 13 .BI # num ' فریم \fInum\fR را انتخاب می‌کند. (نخستین فریم .Qo #0 است. اعداد منفی از آخرین فریم به سمت عقب شمارش می‌شوند، که آخرین فریم .Qo #-1 است.) ' .TP 13 .BI # num1 \- num2 ' فریم‌های \fInum1\fR تا \fInum2\fR را انتخاب می‌کند. ' .TP 13 .BI # num1 \- ' فریم‌های \fInum1\fR تا آخرین فریم را انتخاب می‌کند. ' .TP 13 .BI # name ' فریم با نام \fIname\fR را انتخاب می‌کند. .PD .PP نویسه \(oq#\(cq در بسیاری از پوسته‌ها (shells) معنای ویژه‌ای دارد، بنابراین عموماً باید آن را داخل نقل‌قول (کوتیشن) قرار دهید. .PP برای نمونه، .Xs \fBgifsicle happy.gif "#0"\fR .Xe نخستین فریم happy.gif را به کار می‌برد؛ .Xs \fBgifsicle happy.gif "#0-2"\fR .Xe سه فریم اول آن را به کار می‌برد؛ و .Xs \fBgifsicle happy.gif "#-1-0"\fR .Xe فریم‌های آن را به ترتیب معکوس استفاده می‌کند (شروع از فریم #-1\*Eآخرین فریم\*Eو پایان در فریم #0\*Eاولین فریم). .PP عملیاتی که روی فریم‌های انتخاب‌شده انجام می‌شود به حالت جاری بستگی دارد. در حالت ادغام (merge)، فقط فریم‌های انتخاب‌شده در فایل خروجی ادغام می‌شوند. در حالت دسته‌ای (batch)، فقط فریم‌های انتخاب‌شده اصلاح می‌شوند و سایر فریم‌ها دست‌نخورده باقی می‌مانند. در حالت تفکیک (explode)، تنها فریم‌های انتخاب‌شده به فایل‌های GIF خروجی مجزا تفکیک می‌شوند. ' .\" ----------------------------------------------------------------- .SS "گزینه‌های تغییر فریم (Frame Change Options)" گزینه‌های تغییر فریم، فریم‌های جدیدی را در یک پویانمایی درج کرده و یا فریم‌های موجود را جایگزین یا حذف می‌کنند. انجام برخی کارها\*Eبرای نمونه تغییر یک فریم در یک پویانمایی\*Eبا گزینه‌های انتخاب فریم دشوار است، اما با گزینه‌های تغییر فریم به سادگی انجام می‌شود. ' .TP 5 .Oa \-\-delete frames " [" frames ".\|.\|.]" ' فریم‌های مشخص‌شده در .I frames را از فایل GIF ورودی حذف می‌کند. ' .TP .Oa \-\-insert\-before "frame other-GIFs" ' فایل‌های .I other-GIFs را پیش از .I frame در فایل GIF ورودی درج می‌کند. ' .TP .Oa \-\-append "other-GIFs" ' فایل‌های .I other-GIFs را به انتهای فایل GIF ورودی پیوست (append) می‌کند. ' .TP .Oa \-\-replace "frames other-GIFs" ' فریم‌های .I frames را از فایل GIF ورودی با .IR other-GIFs جایگزین می‌کند. ' .TP \fB\-\-done\fR ' مجموعه تغییرات فریم جاری را تکمیل و نهایی می‌کند. ' .PP آرگومان‌های .I frames همان گزینه‌های انتخاب فریم هستند (بخش بالا را ببینید). این آرگومان‌ها همیشه به فریم‌های فایل GIF ورودی .I اصلی اشاره دارند. بنابراین اگر \(oqa.gif\(cq دارای ۳ فریم و \(oqb.gif\(cq دارای یک فریم باشد، این دستور: .Xs \fBgifsicle a.gif \-\-delete "#0" \-\-replace "#2" b.gif\fR .Xe یک پویانمایی خروجی با ۲ فریم تولید می‌کند: فریم ۱ از \(oqa.gif\(cq و سپس \(oqb.gif\(cq. .PP آرگومان‌های .I other-GIFs شامل هر تعداد فایل ورودی GIF و گزینه‌های انتخاب فریم هستند. این تصاویر در حالت ادغام (merge) ترکیب شده و به فایل GIF ورودی افزوده می‌شوند. تاثیر .I other-GIFs تا گزینه تغییر فریم بعدی ادامه می‌یابد؛ بنابراین این دستور فریم اول \(oqin.gif\(cq را با ادغام \(oqa.gif\(cq و \(oqb.gif\(cq جایگزین می‌کند: .Xs \fBgifsicle \-b in.gif \-\-replace "#0" a.gif b.gif\fR .Xe .PP با این حال، دستور زیر فریم اول \(oqin.gif\(cq را با \(oqa.gif\(cq جایگزین کرده و سپس \(oqb.gif\(cq را به صورت جداگانه پردازش می‌کند: .Xs \fBgifsicle \-b in.gif \-\-replace "#0" a.gif \-\-done b.gif\fR .Xe .PP هشدار: نباید هم‌زمان از گزینه‌های انتخاب فریم و گزینه‌های تغییر فریم روی یک فایل GIF ورودی یکسان استفاده کنید. ' .\" ----------------------------------------------------------------- .SS "گزینه‌های تصویر (Image Options)" گزینه‌های تصویر، تصاویر ورودی را اصلاح می‌کنند\*Eبرای نمونه با تغییر درهم‌بافی (interlacing)، شفافیت (transparency) و برش (cropping). گزینه‌های تصویر دارای سه فرم هستند: .Qo \-\-X ، .Qo \-\-no\-X ، و .Qo \-\-same\-X . فرم .Qo \-\-X مقداری را برای آن ویژگی انتخاب می‌کند، فرم .Qo \-\-no\-X ویژگی را خاموش می‌کند، و فرم .Qo \-\-same\-X بدان معناست که مقدار ویژگی از هر ورودی کپی می‌شود. حالت پیش‌فرض همیشه .Qo \-\-same\-X است. برای نمونه، .Op \-\-background= """#0000FF""" رنگ پس‌زمینه را روی آبی تنظیم می‌کند، .Op \-\-no\-background رنگ پس‌زمینه را خاموش می‌کند (با تنظیم آن روی 0)، و .Op \-\-same\-background از رنگ‌های پس‌زمینه موجود در تصاویر ورودی استفاده می‌کند. می‌توانید هر گزینه را چندین بار مشخص کنید؛ برای نمونه، .Xs \fBgifsicle \-b \-O2 \-i a.gif \-\-same\-interlace b.gif c.gif\fR .Xe فایل \(oqa.gif\(cq را درهم‌بافته می‌کند، اما \(oqb.gif\(cq و \(oqc.gif\(cq را تنها در صورتی درهم‌بافته باقی می‌گذارد که از قبل دارای این ویژگی بوده باشند. ' .Sp .PD 0 .TP 5 .Oa \-B color .TP .Oa \-\-background color ' رنگ پس‌زمینه فایل GIF خروجی را روی .IR color تنظیم می‌کند. آرگومان می‌تواند همان فرم‌های ذکرشده در گزینه .Op \-\-transparent در ادامه را داشته باشد. ' .Sp .TP .Oa \-\-crop x1 , y1 - x2\fR,\fIy2 .TP .Oa \-\-crop x1 , y1 + width\fRx\fIheight ' فریم‌های ورودی بعدی را به یک ناحیه مستطیلی کوچک‌تر برش می‌دهد. گوشه بالا-چپ این مستطیل .RI ( x1 , y1 ) است؛ می‌توانید یا گوشه پایین-راست، .RI ( x2 , y2 )، یا عرض و ارتفاع مستطیل را مشخص کنید. در فرم .IR x1 , y1 + width x height ، مقادیر .I width و .I height می‌توانند صفر یا منفی باشند. بُعد صفر به این معنی است که ناحیه برش تا لبه تصویر امتداد می‌یابد؛ بُعد منفی ناحیه برش را به همان تعداد پیکسل از لبه تصویر به سمت داخل می‌آورد. برای نمونه، .Op \-\-crop " 2,2+-2x-2" به اندازه ۲ پیکسل از هر طرف تصویر ورودی برش می‌زند. برش زدن پیش از هرگونه چرخش، قرینه‌سازی، تغییر اندازه یا موقعیت‌دهی اعمال می‌شود. ' .Sp .TP .Op \-\-crop\-transparency ' هرگونه حاشیه شفاف را از فریم‌های ورودی بعدی برش می‌دهد. این عمل پس از هر برشی که با گزینه .Op \-\-crop مشخص شده باشد رخ می‌دهد. این گزینه روی تصاویر ورودی خام کار می‌کند؛ بنابراین برای نمونه، هنوز هیچ گزینه شفافیتی روی آن‌ها اعمال نشده است. ' .Sp .TP .Op \-\-flip\-horizontal .TP .Op \-\-flip\-vertical ' فریم‌های بعدی را به صورت افقی یا عمودی قرینه (flip) می‌کند. ' .Sp .TP .Op \-i .TP .Op \-\-interlace ' درهم‌بافی (interlacing) را فعال می‌کند. ' .Sp .TP .Oa \-S width x height .TP .Oa \-\-logical\-screen width x height ' صفحه نمایش منطقی (logical screen) خروجی را روی .IR width x height تنظیم می‌کند. .Op \-\-no\-logical\-screen صفحه نمایش منطقی خروجی را به اندازه‌ای بزرگ تنظیم می‌کند که تمام فریم‌های خروجی را در بر گیرد، در حالی که .Op \-\-same\-logical\-screen صفحه نمایش منطقی خروجی را به اندازه‌ای بزرگ تنظیم می‌کند که تمام صفحات نمایش منطقی ورودی را شامل شود. .Op \-\-screen مترادفی برای .Op \-\-logical\-screen است. ' .Sp .TP .Oa \-p x\fR,\fIy .TP .Oa \-\-position x\fR,\fIy ' موقعیت فریم‌های بعدی را روی .RI ( x , y ) تنظیم می‌کند. .Op \-\-no\-position به معنای .Op \-\-position " 0,0." است. به طور معمول، .Oa \-\-position x\fR,\fIy هر فریم بعدی را دقیقاً در \fIx\fR,\fIy\fR قرار می‌دهد. با این حال، اگر یک پویانمایی کامل ورودی داده شود، \fIx\fR,\fIy\fR به عنوان موقعیت کل آن پویانمایی در نظر گرفته می‌شود. ' .Sp .TP .Op \-\-rotate\-90 .TP .Op \-\-rotate\-180 .TP .Op \-\-rotate\-270 ' فریم‌های بعدی را به اندازه ۹۰، ۱۸۰ یا ۲۷۰ درجه می‌چرخاند. .Op \-\-no\-rotate هرگونه چرخش را خاموش می‌کند. ' .Sp .TP .Oa \-t color .TP .Oa \-\-transparent color ' رنگ .I color را در فریم‌های بعدی شفاف (transparent) می‌کند. .I Color می‌تواند یک شاخص جدول رنگ (0\-255)، یک مقدار رنگ در مبنای شانزده (مانند "#FF00FF" برای سرخابی)، یا مقادیر قرمز، سبز و آبی جداشده با اسلش یا کاما (هر کدام بین 0 تا 255) باشد. .PD ' .\" ----------------------------------------------------------------- .SS "گزینه‌های افزونه (Extension Options)" گزینه‌های افزونه، اطلاعات غیربصری را به فایل GIF خروجی اضافه می‌کنند. این موارد شامل نام‌ها، توضیحات و افزونه‌های عمومی است. ' .Sp .PD 0 .TP 5 .Oa \-\-app\-extension app\-name " " extension ' یک افزونه برنامه کاربردی با نام .I app\-name و مقدار .I extension به فایل GIF خروجی اضافه می‌کند. .Op \-\-no\-app\-extensions افزونه‌های برنامه کاربردی را از تصاویر ورودی حذف می‌کند. ' .Sp .TP .Oa \-c text .TP .Oa \-\-comment text ' یک توضیح (کامنت)، .IR text ، به فایل GIF خروجی می‌افزاید. این توضیح پیش از فریم بعدی در جریان تصویر قرار خواهد گرفت. .Op \-\-no\-comments توضیحات را از تصاویر ورودی حذف می‌کند. ' .Sp .TP .Oa \-\-extension number " " extension ' یک افزونه با شماره .I number و مقدار .I extension به فایل GIF خروجی اضافه می‌کند. .I Number می‌تواند در مبنای ده، هشت، شانزده، یا یک کاراکتر منفرد مانند \(oqn\(cq باشد که مقدار ASCII آن استفاده می‌شود. .Op \-\-no\-extensions (یا .Op +x ) افزونه‌ها را از تصاویر ورودی حذف می‌کند. ' .Sp .TP .Oa \-n text .TP .Oa \-\-name text ' نام فریم بعدی را روی .IR text تنظیم می‌کند. این نام به عنوان یک افزونه در فایل GIF خروجی ذخیره می‌شود (شماره افزونه 0xCE، و به دنبال آن کاراکترهای نام فریم). .Op \-\-no\-names افزونه‌های نام را از تصاویر ورودی حذف می‌کند. ' .PD ' .\" ----------------------------------------------------------------- .SS "گزینه‌های پویانمایی (Animation Options)" گزینه‌های پویانمایی روی کل پویانمایی‌های GIF یا فریم‌های منفرد درون پویانمایی اعمال می‌شوند. همانند گزینه‌های تصویر، بیشتر گزینه‌های پویانمایی دارای سه فرم هستند: .Qo \-\-X ، .Qo \-\-no\-X ، و .Qo \-\-same\-X ، و می‌توانید گزینه‌های پویانمایی را چندین بار مشخص کنید؛ برای نمونه، .Xs \fBgifsicle \-b a.gif \-d50 "#0" "#1" \-d100 "#2" "#3"\fR .Xe تاخیر فریم‌های 0 و 1 را روی 50، و فریم‌های 2 و 3 را روی 100 تنظیم می‌کند. ' .Sp .PD 0 .TP 5 .Oa \-d time .TP .Oa \-\-delay time ' تاخیر بین فریم‌ها را بر حسب صدم ثانیه روی .IR time تنظیم می‌کند. ' .Sp .TP .Oa \-D method .TP .Oa \-\-disposal method ' روش امحا/پاک‌سازی (disposal method) را برای فریم‌های بعدی روی .IR method تنظیم می‌کند. روش پاک‌سازی یک فریم مشخص می‌کند که نمایش‌دهنده چگونه باید آن فریم را هنگام نمایش فریم بعدی حذف کند. .I Method می‌تواند عددی بین 0 تا 7 باشد (اگرچه معمولاً تنها اعداد 0 تا 3 معنا دارند)، یا یکی از نام‌های زیر: .BR none (فریم را برای ساخت فریم‌های بعدی روی آن، قابل مشاهده باقی می‌گذارد)، .BR asis (مشابه "none")، .BR background " (یا " bg ")" (فریم را با رنگ پس‌زمینه جایگزین می‌کند)، یا .BR previous (فریم را با ناحیه فریم نمایش‌داده‌شده قبلی جایگزین می‌کند). .Op \-\-no\-disposal به معنای .Op \-\-disposal = none است. ' .Sp .TP .Op \-l "[\fIcount\fR]" .TP .Op \-\-loopcount "[=\fIcount\fR]" ' افزونه تکرار نت‌اسکیپ (Netscape loop extension) را روی .IR count تنظیم می‌کند. .I Count یک عدد صحیح است، یا .B forever برای تکرار بی‌نهایت. اگر گزینه .Op \-\-loopcount را بدون تعیین .IR count مشخص کنید، Gifsicle از مقدار .BR forever استفاده خواهد کرد. گزینه .Op \-\-no\-loopcount (حالت پیش‌فرض) تکرار را غیرفعال می‌کند. .Sp تعداد حلقه (loop count) را یک واحد کمتر از تعداد دفعاتی که می‌خواهید پویانمایی اجرا شود تنظیم کنید. یک پویانمایی با .Op \-\-no\-loopcount هر فریم را یک بار نمایش می‌دهد؛ .Op \-\-loopcount =1 یک بار تکرار می‌شود و در نتیجه هر فریم دو بار نمایش داده می‌شود؛ و به همین ترتیب. توجه داشته باشید که .Op \-\-loopcount =0 معادل .Op \-\-loopcount =forever است، نه .Op \-\-no\-loopcount . ' .Sp .TP .Op \-O "[\fIlevel\fR]" .TP .Op \-\-optimize "[=\fIlevel\fR]" ' تلاش می‌کند اندازه فایل پویانمایی‌های GIF را کاهش دهد. .I Level میزان بهینه‌سازی را مشخص می‌کند؛ سطوح بالاتر زمان بیشتری می‌برند اما ممکن است نتایج بهتری به همراه داشته باشند. در حال حاضر سه سطح وجود دارد: .Sp .RS .TP 5 .Op \-O1 فقط بخش تغییریافته از هر تصویر را ذخیره می‌کند. این حالت پیش‌فرض است. .TP 5 .Op \-O2 فقط بخش تغییریافته از هر تصویر را ذخیره کرده و از شفافیت استفاده می‌کند. .TP 5 .Op \-O3 چندین روش بهینه‌سازی را آزمایش می‌کند (معمولاً کندتر است، اما گاهی نتایج بهتری دارد). .Sp .PP سایر فلگ‌های بهینه‌سازی کنترل دقیق‌تری ارائه می‌دهند. .Sp .TP 5 .Op \-Okeep-empty فریم‌های شفاف خالی را حفظ می‌کند (به صورت پیش‌فرض این فریم‌ها حذف می‌شوند). .Sp .PP همچنین ممکن است به سایر گزینه‌ها برای کاهش حجم فایل‌های GIF علاقه‌مند باشید، مانند .Op \-k ، .Op \-\-lossy ، و .Op \-\-no\-extensions . توجه داشته باشید که گزینه .Op \-O کاهش قطعی اندازه فایل را تضمین نمی‌کند و در موارد نادری حتی .Op \-O3 ممکن است حجم فایل را افزایش دهد. .RE ' .Sp .TP 5 .Oa \-U .TP .Oa \-\-unoptimize ' پویانمایی‌های GIF را برای ویرایش آسان به حالت غیربهینه (unoptimized) برمی‌گرداند. .Sp پویانمایی‌های GIF معمولاً بهینه‌سازی می‌شوند (گزینه .Op \-\-optimize را ببینید) تا حجم آن‌ها کمتر شده و سریع‌تر بارگذاری شوند، که متأسفانه ویرایش آن‌ها را دشوار می‌کند. گزینه .Op \-\-unoptimize فایل‌های ورودی بهینه‌شده GIF را به حالت غیربهینه درمی‌آورد، به گونه‌ای که هر فریم نمایانگر دقیق همان چیزی است که کاربر در آن لحظه از پویانمایی مشاهده می‌کند. .RE ' .PD ' .\" ----------------------------------------------------------------- .SS "گزینه‌های تبدیل تصویر (Image Transformation Options)" ' گزینه‌های تبدیل تصویر هنگام خواندن یا نوشتن، روی کل فایل‌های GIF اعمال می‌شوند. این گزینه‌ها را می‌توان با .Qo \-\-no\-option غیرفعال کرد. ' .Sp .PD 0 .TP 5 .Oa \-\-resize width x height ' اندازه فایل GIF خروجی را به ابعاد مشخص‌شده .IR width " و " height تغییر می‌دهد. اگر .I width یا .I height یک خط زیرین \(oq_\(cq باشد، آن بُعد به گونه‌ای محاسبه و انتخاب می‌شود که نسبت تصویر (aspect ratio) بدون تغییر باقی بماند. تغییر اندازه پس از ترکیب تمام فریم‌های ورودی و پیش از بهینه‌سازی رخ می‌دهد. تغییر اندازه از ابعاد صفحه نمایش منطقی استفاده می‌کند؛ اگر جریان ورودی دارای یک صفحه نمایش منطقی غیرمعمول باشد (بسیاری از برنامه‌های نمایش GIF صفحات منطقی را نادیده می‌گیرند)، ممکن است بخواهید از گزینه .Op \-\-no\-logical\-screen (یا .Op +S ) برای بازنشانی آن استفاده کنید تا .B gifsicle به‌جای آن از ابعاد واقعی تصویر بهره ببرد. همچنین گزینه .Op \-\-resize\-method را ببینید. ' .Sp .TP .Oa \-\-resize\-width width .TP .Oa \-\-resize\-height height ' اندازه را با حفظ نسبت تصویر به یک عرض یا ارتفاع معین تغییر می‌دهد. این معادل .Oa \-\-resize width x_ یا .Oa \-\-resize "" _x height است. ' .Sp .TP .Oa \-\-resize\-fit width x height .TP .Oa \-\-resize\-touch width x height ' اندازه فایل GIF خروجی را به گونه‌ای تغییر می‌دهد که درون یک مستطیل با ابعاد .IR width x height جای گیرد. نسبت ابعاد تصویر دست‌نخورده باقی می‌ماند. گزینه .Op \-\-resize\-fit تنها تصویر را کوچک می‌کند\*Eاگر تصویر GIF از قبل در ابعاد مستطیل جا بگیرد، هیچ تغییر اندازه‌ای صورت نمی‌پذیرد. گزینه .Op \-\-resize\-touch ممکن است تصویر را کوچک یا بزرگ کند؛ به گونه‌ای که فایل GIF خروجی دارای عرض .IR width ، ارتفاع .IR height ، یا هر دو باشد. هر کدام از مقادیر .I width یا .I height می‌تواند یک خط زیرین \(oq_\(cq باشد، که در این صورت آن بُعد بدون محدودیت در نظر گرفته می‌شود. ' .Sp .TP .Oa \-\-resize\-fit\-width width .TP .Oa \-\-resize\-fit\-height height .TP .Oa \-\-resize\-touch\-width width .TP .Oa \-\-resize\-touch\-height height ' مشابه گزینه‌های .Oa \-\-resize\-fit و .Op \-\-resize\-touch "،" اما محدودیت را تنها روی یک بُعد اعمال می‌کند. ' .Sp .TP .Oa \-\-resize\-geometry geometry ' تغییر اندازه به مشخصات هندسی (geometry) همان‌طور که در ابزارهای ImageMagick و GraphicsMagick استفاده می‌شود. مقدار .I Geometry باید با الگوی .RI \(oq width x height [%][!][^][<][>]\(cq مطابقت داشته باشد، که در آن .IR width " و " height اعداد صحیح (یا خط زیرین، \(oq_\(cq، که آن بُعد را بدون محدودیت می‌گذارد) هستند. پسوندها دارای معانی زیر می‌باشند: .RS .TP 5 .Op % ابعاد را به عنوان درصد از اندازه فعلی در نظر می‌گیرد. .TP 5 .Op ! بدون توجه به نسبت تصویر اصلی، اندازه را دقیقاً به ابعاد داده‌شده تغییر می‌دهد. .TP 5 .Op < تنها در صورتی اندازه را تغییر می‌دهد که تصویر کوچک‌تر از ابعاد مشخص‌شده باشد. .TP 5 .Op > تنها در صورتی اندازه را تغییر می‌دهد که تصویر بزرگ‌تر از ابعاد مشخص‌شده باشد. .TP 5 .Op ^ ابعاد داده‌شده را به‌جای حداکثر، به عنوان مقادیر حداقل در نظر می‌گیرد. .RE ' .Sp .TP .Oa \-\-scale Xfactor [x Yfactor ] ' عرض و ارتفاع فایل GIF خروجی را با ضرایب .IR Xfactor " و " Yfactor مقیاس‌بندی می‌کند. اگر .I Yfactor مشخص نشود، مقدار پیش‌فرض آن همان .IR Xfactor خواهد بود. مقیاس‌بندی پس از ترکیب تمام فریم‌های ورودی و پیش از بهینه‌سازی اعمال می‌شود. ' .Sp .TP .Oa \-\-resize\-method method ' روشی را که برای تغییر اندازه تصاویر استفاده می‌شود تعیین می‌کند. روش \(oqsample\(cq بسیار سریع اجرا می‌شود، اما هنگام کوچک کردن تصاویر خروجی نویزدار تولید می‌کند. روش \(oqmix\(cq مقداری کندتر است، اما خروجی‌های بسیار بهتری ارائه می‌دهد. روش پیش‌فرض در حال حاضر \(oqmix\(cq است. .RS .Sp .PP جزئیات: تفاوت روش‌های تغییر اندازه بیشتر هنگام کوچک کردن تصاویر مشخص می‌شود. روش \(oqsample\(cq یک نمونه‌بردار نقطه‌ای است: هر موقعیت پیکسل در تصویر خروجی دقیقاً به یک موقعیت پیکسل در تصویر ورودی متناظر می‌شود. هنگام کوچک کردن، ردیف‌ها و ستون‌های کامل از ورودی حذف می‌شوند. سایر روش‌ها از تمام پیکسل‌های ورودی استفاده می‌کنند که به‌طور کلی تصاویر بهتری تولید می‌کند. روش \(oqbox\(cq که یک نمونه‌بردار جعبه‌ای است، نسبت به فیلترهای پیچیده‌تر سریع‌تر بوده و نتایج شفاف‌تری ارائه می‌دهد، اما هنگام کاهش جزئی اندازه تصویر در یک بُعد، ناهنجاری‌هایی ظاهر می‌شود (برخی از پیکسل‌های خروجی دقیقاً متناظر با ۱ ردیف یا ستون ورودی خواهند بود، در حالی که برخی دیگر متناظر با ۲ ردیف یا ستون ورودی می‌شوند). روش \(oqmix\(cq یک درون‌یاب دوخطی (bilinear) کامل است؛ این روش کندتر بوده و تصاویری کمی محوتر تولید می‌کند، اما از ناهنجاری‌ها جلوگیری می‌نماید. .Sp .PP دستور Gifsicle همچنین از نمونه‌بردارهای مجدد پیچیده‌تر نیز پشتیبانی می‌کند، از جمله نمونه‌برداری مکعبی Catmull-Rom (روش \(oqcatrom\(cq)، فیلتر Mitchell-Netravali (روش \(oqmitchell\(cq)، فیلتر Lanczos با ۲ لوب (\(oqlanczos2\(cq) و فیلتر Lanczos با ۳ لوب (\(oqlanczos3\(cq). این فیلترها باز هم کندتر هستند، اما می‌توانند نتایج شفاف‌تر و بسیار بهتری ارائه دهند. .RE ' .Sp .TP .Oa \-\-resize\-colors n ' به Gifsicle اجازه می‌دهد هنگام تغییر اندازه تصاویر، رنگ‌های میانی (intermediate colors) اضافه کند. معمولاً الگوریتم‌های تغییر اندازه Gifsicle از پالت رنگ تصاویر ورودی بدون تغییر استفاده می‌کنند. هنگام کوچک کردن تصاویری با تعداد رنگ بسیار کم (مانند تصاویر کاملاً سیاه‌وسفید)، افزودن رنگ‌های میانی می‌تواند کیفیت نتیجه را بهبود بخشد. برای نمونه: .Oa \-\-resize\-colors 64 به Gifsicle اجازه می‌دهد برای تصاویری که کمتر از ۶۴ رنگ ورودی دارند، رنگ‌های میانی اضافه کند. .PD ' .\" ----------------------------------------------------------------- .SS "گزینه‌های رنگ (Color Options)" ' گزینه‌های رنگ هنگام خواندن یا نوشتن، روی کل فایل‌های GIF اعمال می‌شوند. این گزینه‌ها را می‌توان با .Qo \-\-no\-option غیرفعال کرد. .Sp .PD 0 .TP 5 .Oa \-k num .TP .Oa \-\-colors num ' تعداد رنگ‌های متمایز در هر فایل GIF خروجی را به .I num یا کمتر کاهش می‌دهد. .I Num باید بین ۲ تا ۲۵۶ باشد. از این گزینه می‌توان برای کاهش حجم فایل‌های خروجی GIF یا حذف هرگونه جدول رنگ محلی استفاده کرد. .Sp به طور معمول، گروهی تطبیق‌پذیر از رنگ‌ها از روی جدول رنگ موجود انتخاب می‌شود. می‌توانید این فرآیند را با گزینه .Op \-\-color\-method یا با ارائه جدول رنگ اختصاصی خود از طریق گزینه .Op \-\-use\-colormap تغییر دهید. در صورتی که در تصویر شفافیت وجود داشته باشد، ممکن است Gifsicle نیاز به افزودن یک رنگ دیگر (در مجموع .IR num +1 رنگ) داشته باشد. ' .Sp .TP .Oa \-\-color\-method method ' نحوه انتخاب یک جدول رنگ کوچک‌تر را تعیین می‌کند. .RB \(oq diversity \(cq، حالت پیش‌فرض، همان الگوریتم تنوع برنامه .BR xv (1) است که زیرمجموعه دقیقی از رنگ‌های موجود را به کار می‌برد و عموماً نتایج خوبی به همراه دارد. .RB \(oq blend\-diversity \(cq روشی اصلاح‌شده از این الگوریتم است: برخی مقادیر رنگ از ترکیب گروه‌هایی از رنگ‌های موجود به دست می‌آیند. .RB \(oq median\-cut \(cq الگوریتم برش میانه (median cut) است که توسط Heckbert تشریح شده است. .Op \-\-method مترادفی برای .Op \-\-color\-method است. ' .Sp .TP 5 .Oa \-f .TP .Op \-\-dither "[=\fImethod\fR]" ' هنگامی که .Op \-\-dither فعال باشد و جدول رنگ تغییر کند، از ترکیب رنگ‌ها برای شبیه‌سازی رنگ‌های ناموجود استفاده می‌شود. این کار ظاهر تصویر را بهتر می‌کند اما حجم فایل را افزایش داده و می‌تواند باعث ایجاد ناهنجاری در پویانمایی شود؛ بنابراین به طور پیش‌فرض غیرفعال است. .Sp می‌توانید روش ترام/پخش رنگ (dithering) را با آرگومان اختیاری \fImethod\fR مشخص کنید. روش پیش‌فرض، .RB \(oq floyd-steinberg \(cq، از روش انتشار خطای فلوید-اشتاینبرگ (Floyd-Steinberg) استفاده می‌کند. این روش معمولاً بهترین ظاهر را ایجاد می‌کند، اما به دلیل تفاوت در انتخاب‌های ترام از فریمی به فریم دیگر، می‌تواند باعث ایجاد ناهنجاری در پویانمایی‌ها شود. روش .RB \(oq atkinson \(cq از انتشار خطای اتکینسون (Atkinson) که گونه‌ای از فلوید-اشتاینبرگ است بهره می‌برد؛ این روش الگوی ترام محلی‌تری ارائه می‌دهد که می‌تواند برای تصاویری با سطوح رنگی یکدست و بزرگ مفید باشد. همچنین Gifsicle از روش‌های ترام منظم (ordered dithering) نیز پشتیبانی می‌کند که از ناهنجاری‌های پویانمایی جلوگیری می‌نمایند. روش .RB \(oq ro64 \(cq از یک الگوی بزرگ و شبه‌تصادفی استفاده می‌کند و عموماً نتایج خوبی ارائه می‌دهد. روش‌های .RB \(oq o3 \(cq، .RB \(oq o4 \(cq، و .RB \(oq o8 \(cq از الگوهای کوچک‌تر و منظم‌تر استفاده می‌کنند. روش .RB \(oq ordered \(cq یک الگوریتم ترام منظم مناسب را انتخاب می‌نماید. برای ایجاد جلوه‌های ویژه، روش‌های ترام نیم‌سایه (halftone) شامل .RB \(oq halftone \(cq، .RB \(oq squarehalftone \(cq، و .RB \(oq diagonal \(cq را امتحان کنید. ' .Sp برخی روش‌ها پارامترهای اختیاری را با علامت کاما می‌پذیرند. روش‌های نیم‌سایه اندازه سلول و محدودیت رنگ دریافت می‌کنند: .RB \(oq halftone,10,3 \(cq سلول‌های نیم‌سایه با عرض ۱۰ پیکسل ایجاد می‌کند که در آن هر سلول تا حداکثر ۳ رنگ به کار می‌برد. ' .Sp .TP 5 .Oa \-\-gamma gamma ' فضای رنگ یا تصحیح گاما را روی .IR gamma تنظیم می‌کند؛ این مقدار می‌تواند یک عدد حقیقی، .RB \(oq srgb \(cq (حالت پیش‌فرض)، یا .RB \(oq oklab \(cq باشد. به‌طور کلی، اعداد بزرگ‌تر سایه‌ها را برجسته‌تر و اعداد کوچک‌تر بخش‌های روشن را نمایان‌تر می‌کنند. فضای رنگ پیش‌فرض همان sRGB استاندارد است که معمولاً به‌خوبی عمل می‌کند (اثرات آن مشابه \fB\-\-gamma\fP=2.2 است). دستور Gifsicle هنگام انتخاب پالت رنگ (\fB\-\-colors\fP)، ترام دادن (\fB\-\-dither\fP)، و محاسبه خطاهای رنگی در فشرده‌سازی همراه با اتلاف (\fB\-\-lossy\fP) از تصحیح گاما استفاده می‌کند. ' .Sp .TP .Op \-\-lossy "[=\fIlossiness\fR]" ' رنگ‌های تصویر را برای کاهش حجم فایل خروجی به قیمت ایجاد مقداری نویز و ناهنجاری تغییر می‌دهد. مقدار .I Lossiness میزان ناهنجاری‌های مجاز را مشخص می‌کند؛ مقادیر بالاتر می‌تواند منجر به کاهش بیشتر حجم فایل شود، اما ناهنجاری‌های بیشتری پدید می‌آورد. مقدار پیش‌فرض .I lossiness برابر با ۲۰ است. ' .Sp دستور Gifsicle از فضای رنگی تعیین‌شده توسط \fB\-\-gamma\fP برای ارزیابی ناهنجاری‌ها استفاده می‌کند. اگر از عملکرد \fB\-\-lossy\fP رضایت ندارید، فضای رنگ دیگری مانند \fB\-\-gamma\fP=1 را امتحان کنید. ' .Sp .PD 0 .TP .Oa \-\-change\-color color1 " " color2 ' رنگ .I color1 را به .I color2 در فایل‌های GIF ورودی بعدی تغییر می‌دهد. (آرگومان‌های .I color همان فرم‌های ذکرشده در گزینه .Op \-t را دارند.) می‌توانید با درج چندین باره این گزینه، چندین رنگ را تغییر دهید. تغییرات رنگ با یکدیگر تداخل ندارند، بنابراین می‌توانید با خیالی آسوده جای دو رنگ را با .Qa \-\-change\-color "color1 color2" \-\-change\-color "color2 color1" جابه‌جا کنید. تمام تغییرات هنگام خواندن فایل GIF ورودی اعمال می‌شوند. گزینه .Op \-\-no\-change\-color تمامی تغییرات رنگ را لغو می‌کند. ' .Sp .TP .Oa \-\-transform\-colormap command ' مقدار .I Command باید یک دستور پوسته باشد که از ورودی استاندارد می‌خواند و در خروجی استاندارد می‌نویسد. هر جدول رنگ در فایل GIF خروجی به فرمت متنی جدول رنگ (بخش .Op \-\-use\-colormap در زیر را ببینید) ترجمه شده و به این دستور ارسال (pipe) می‌شود. خروجی‌ای که دستور تولید می‌کند (که آن هم باید با فرمت متنی جدول رنگ باشد) جایگزین جدول رنگ ورودی خواهد شد. این جایگزینی تطبیق رنگ انجام نمی‌دهد، بنابراین پیکسل‌هایی که از جایگاه رنگ .I n در ورودی استفاده کرده‌اند، همچنان از جایگاه رنگ .I n در خروجی استفاده خواهند کرد. ' .Sp .TP .Oa \-\-use\-colormap colormap ' تصویر را تغییر می‌دهد تا از جدول رنگ .IR colormap استفاده کند. هر پیکسل در تصویر به نزدیک‌ترین رنگ تطبیق‌یافته در .I colormap (یا اگر .Op \-\-dither روشن باشد، به ترکیبی ترام‌خورده از رنگ‌های موجود در .IR colormap ) تغییر می‌یابد. مقدار .I Colormap می‌تواند .BR web برای پالت ۲۱۶ رنگی امن وب (\(lqWeb-safe palette\(rq)، .BR gray برای مقیاس خاکستری، .BR bw برای سیاه‌وسفید، یا نام یک فایل باشد. آن فایل باید یا یک فایل متنی (که قالب آن در ادامه توضیح داده شده است) یا یک فایل GIF باشد که از جدول رنگ سراسری آن استفاده خواهد شد. اگر گزینه .Op \-\-colors\fR=\fIN نیز داده شود، یک زیرمجموعه .IR N \-تایی از .I colormap به کار خواهد رفت. .Sp فایل‌های متنی جدول رنگ از این قالب استفاده می‌کنند: .Es ; هر خط بدون علامت توضیح بیانگر یک رنگ است: "red green blue" ; هر مولفه باید بین 0 تا 255 باشد 0 0 0 ; مانند این 255 255 255 ; یا از نماد هگزادسیمال وب استفاده کنید #ffffff ; مانند این .Ee ' .Sp .TP .Oa \-\-use\-exact\-colormap colormap ' مشابه .Op \-\-use\-colormap\fR ، اما فایل GIF خروجی از .IR colormap دقیقاً همان‌طور که هست استفاده خواهد کرد، به‌جای آنکه ترتیب آن را تغییر دهد و رنگ‌های استفاده‌نشده را حذف کند. ' .PD .PP .br ' .SH "مثال‌ها (EXAMPLES)" ' ابتدا، بیایید یک پویانمایی به نام \(oqanim.gif\(cq ایجاد کنیم: .Es \fBgifsicle a.gif b.gif c.gif d.gif > anim.gif\fR .Ee این پویانمایی با سرعت بسیار بالایی حرکت می‌کند: از آنجا که تاخیری مشخص نکرده‌ایم، مرورگر با حداکثر سرعت ممکن میان فریم‌ها جابه‌جا می‌شود. بیایید با استفاده از گزینه .Op \-\-delay سرعت آن را کم کرده و بین هر فریم ۰٫۵ ثانیه مکث قرار دهیم: .Es \fBgifsicle \-\-delay 50 a.gif b.gif c.gif d.gif > anim.gif\fR .Ee اگر بخواهیم این فایل GIF سه بار تکرار شود، می‌توانیم از .Op \-\-loopcount استفاده کنیم: .Es \fBgifsicle \-d 50 \-\-loop=3 a.gif b.gif c.gif d.gif > anim.gif\fR .Ee (به‌جای تایپ مجدد .Op \-\-delay ، از فرم کوتاه آن یعنی .Op \-d استفاده کردیم. بسیاری از گزینه‌ها دارای فرم‌های کوتاه هستند؛ می‌توانید با اجرای دستور .RB \(oq "gifsicle \-\-help" \(cq آن‌ها را مشاهده کنید. همچنین .Op \-\-loopcount را به .Op \-\-loop خلاصه کردیم که مشکلی ایجاد نمی‌کند، زیرا گزینه دیگری با \(oqloop\(cq آغاز نمی‌شود.) .PP برای تفکیک \(oqanim.gif\(cq به فریم‌های تشکیل‌دهنده آن: .Es \fBgifsicle \-\-explode anim.gif\fR .br \fBls anim.gif*\fR .br anim.gif anim.gif.000 anim.gif.001 anim.gif.002 anim.gif.003 .Ee برای بهینه‌سازی \(oqanim.gif\(cq: .Es \fBgifsicle \-b \-O2 anim.gif\fR .Ee برای تغییر فریم دوم \(oqanim.gif\(cq به تصویر \(oqx.gif\(cq: .Es \fBgifsicle \-b \-\-unoptimize \-O2 anim.gif \-\-replace "#1" x.gif\fR .Ee گزینه .Op \-\-unoptimize به این دلیل استفاده شده است که \(oqanim.gif\(cq در مرحله قبل بهینه‌سازی شده بود. ویرایش فریم‌های منفرد در فایل‌های بهینه‌شده GIF بدون استفاده از .Op \-\-unoptimize خطرناک است؛ فریم‌های پس از فریم تغییریافته ممکن است بر اثر این تغییر دچار ناهنجاری و خرابی شوند. البته ممکن است این همان چیزی باشد که می‌خواهید. .PP توجه داشته باشید که گزینه‌های .Op \-\-unoptimize و .Op \-\-optimize می‌توانند به‌طور هم‌زمان فعال باشند. گزینه .Op \-\-unoptimize روی فایل‌های GIF .I ورودی تاثیر می‌گذارد، در حالی که .Op \-\-optimize روی فایل‌های GIF .I خروجی اثرگذار است. .PP برای چاپ اطلاعات مربوط به فریم اول و چهارم فایل \(oqanim.gif\(cq: .Es \fBgifsicle \-I "#0" "#3" < anim.gif\fR .Ee برای تبدیل رنگ سیاه به رنگ شفاف در تمامی فایل‌های GIF موجود در پوشه جاری و همچنین چاپ اطلاعات مربوط به هر یک از آن‌ها: .Es \fBgifsicle \-bII \-\-trans "#000000" *.gif\fR .Ee مشخص کردن دو بار گزینه .Op \-I باعث می‌شود خروجی عادی نیز به اجبار تولید شود. با تنها یک بار استفاده از .Op \-I ، فایل‌های GIF هیچ تغییری نمی‌کردند. .PP برای تغییر \(oqanim.gif\(cq به‌طوری که از یک زیرمجموعه ۶۴ رنگی پالت وب امن استفاده کند: .Es \fBgifsicle \-b \-\-colors=64 \-\-use\-col=web anim.gif\fR .Ee برای ساخت یک نسخه ترام‌خورده سیاه‌وسفید از \(oqanim.gif\(cq: .Es \fBgifsicle \-\-dither \-\-use\-col=bw anim.gif > anim-bw.gif\fR .Ee .PP برای قرار دادن یک فایل GIF بر روی فایلی دیگر\*Eبه گونه‌ای که یک فایل GIF خروجی تک‌فریم حاصل از برهم‌نهی دو ورودی ایجاد شود\*Eمی‌توانید از .B gifsicle دو بار استفاده کنید: .Es \fBgifsicle bottom.gif top.gif | gifsicle \-U "#1" > result.gif\fR .Ee ' .SH "اشکالات (BUGS)" ' برخی از فایل‌های GIF بهینه‌شده ممکن است در برخی از پیاده‌سازی‌های GIF (مانند جاوا) به درستی نمایش داده نشوند؛ گزینه .Op \-\-careful را ببینید. .PP لطفاً پیشنهادات، بخش‌های الحاقی، وصله‌ها و گزارش اشکالات را به نشانی ekohler@gmail.com ارسال فرمایید. ' .SH "همچنین ببینید (SEE ALSO)" ' برای راهنمای آموزشی درباره تصاویر و پویانمایی‌های GIF، می‌توانید برخی از منابع برخط ارائه‌شده در webreference\%.com را بررسی فرمایید: .br http://www.webreference.com/authoring/graphics/animation\|.html ' .SH "نویسندگان (AUTHORS)" .na Eddie Kohler .br http://www.read.seas.harvard.edu/~kohler .br نویسنده و توسعه‌دهنده برنامه. .PP Anne Dudfield .br http://www.frii.com/~annied .br نام‌گذاری برنامه. .PP Hans Dinsen-Hansen .br http://www.danbbs.dk/~dino .br ارائه‌دهنده روش درخت تطبیق‌پذیر برای نوشتن فایل‌های GIF. .PP Kornel Lesin\*[']ski .br توسعه گزینه .Op \-\-lossy . .PP http://www.lcdf.org/gifsicle .br صفحه اصلی وب‌سایت .B gifsicle . '