[MUSIC پخش] ROB BOWDEN: سلام، من راب هستم، اجازه دهید سعی کنید این در اندازه. بنابراین، ما در حال رفتن دوباره برای شروع با اساسا یک کپی از copy.c، و ایجاد چند تغییر. توجه داشته باشید بلافاصله ما شاهد یک تغییر، که در آن به جای چک کردن برای دیدن اگر تعداد آنها برابر 3 نیست، ما می خواهیم به بررسی اگر تعداد آنها برابر نیست 4، از در حال حاضر ما در حال نه تنها در INFILE گرفتن و outfile، اما ما نیز گرفتن در n که مقدار که ما هستیم پوسته پوسته شدن تصویر اصلی توسط. زمانی که ما از آن مطمئن هستیم، ما فقط می تواند تبدیل n را به یک عدد صحیح با استفاده از atoi. بنابراین، در حال حاضر ما قصد داریم برای ایجاد برخی از نام مستعار، فقط و argv 2 INFILE تماس بگیرید، و و argv 3 outfile، زیرا و argv 2 و argv را 3 می باشد نام بسیار مفید است. حالا ما می خواهیم به بررسی تا مطمئن شوید N است در داخل مرزهای ما انتظار داریم، به طوری که تنظیمات مشخص می کند که اگر آن را به کمتر یا برابر با صفر است، و یا بیشتر از 100، پس از آن که یک عامل تغییر اندازه نامعتبر است، و ما باید به کاربر آن هشدار می دهند. زمانی که ما فراتر از همه که هستید، ما می توانیم در نهایت باز INFILE ما، و ما باید به خطا را بررسی کنید تا مطمئن شوید که باز هم برای برخی از دلایل شکست نیست. ما همچنین نیاز به باز کردن outfile ما، و دوباره خطا را بررسی کنید تا مطمئن شوید که آیا برای برخی از دلایل شکست نیست. اما مطمئن باشید اگر باز از outfile شکست خورده است که ما نیاز به بستن INFILE، که در حال حاضر باز شده است. بنابراین، فرض کنید که شکست نیست، پس we're - همانطور که در copy.c-- رفتن به خواندن در هدر از INFILE. ما قصد داریم تا مطمئن شوید آن را معتبر بیت مپ، اما در حال حاضر ما قصد داریم برای انجام برخی از چیز کمی متفاوت است. پس اول، ما قصد داریم به می خواهم به به یاد داشته باشید عرض اصلی و ارتفاع از INFILE، چرا که ما در حال رفتن به توان تغییر آن را برای outfile. بنابراین در حال حاضر به یاد داشته باشید که به دلایل عجیب و غریب bi.biheight، منفی است، و به طوری که ارتفاع واقعی، در مثبت، ما می خواهید را به ارزش مطلق. در حال حاضر، بالشتک است که به همان محاسبه آن را به عنوان در copy.c بود، با استفاده از عرض های قدیمی، و در حال حاضر ما در واقع رفتن به تغییر آنچه در هدر است. بنابراین ما قصد داریم با عرض ما به چند برابر نفر، از آنجایی که ما در حال پوسته پوسته شدن عرض N، ضرب ارتفاع توسط n، از آنجایی که ما هستیم پوسته پوسته شدن توسط n، و در حال حاضر ما محاسبه برای یک لایه جدید بر اساس عرض های جدید. بنابراین در حال حاضر ما نیاز به تغییر برخی از زمینه های دیگر در هدر است. Bi.biSizeImage قرار است به اندازه تمام بایت در پیکسل و padding از تصویر. و به این ترتیب به اندازه یک سطر از ما حجم تصویر از RGB سه گانه، به اندازه است از یک پیکسل، برابر تعداد پیکسل در یک ردیف، به علاوه بالشتک در در پایان ردیف. و پس از آن ما قصد داریم به ضرب که توسط قدر مطلق ارتفاع ما به تعداد کل بایت در داده های تصویر. bf.bfSize فقط تعداد کل است بایت در اطلاعات تصویر ما، پس bi.biSizeImage، به علاوه اندازه هدر است. بنابراین، اضافه کردن به اندازه از فایل بیت مپ هدر و اندازه اطلاعات بیت مپ هدر، OK. به طوری که همه ما نیاز به تغییر در هدر است. در حال حاضر ما را هدر فایل بیت مپ ارسال به outfile ما، و اطلاعات بیت مپ ما هدر به outfile ما، و در حال حاضر ما آماده رفتن است بیش از پیکسل های واقعی. بنابراین ما می خواهیم به تکرار بیش از اسکن از خطوط INFILE است. بنابراین ما می خواهیم به تکرار بیش از oldheight. این است که چرا ما نیاز به به خاطر داشته باشید ارتفاع اصلی، قبل از ما آن را تغییر دهید و آن را توسط N کوچک. در حال حاضر ما در حال رفتن به خواندن یک ردیف از INFILE به بافر اندازه oldwidth. اندازه بنابراین در اینجا، ما در حال freading از RGB سه گانه، یک پیکسل و عرض قدیمی آنها را از INFILE به بافر است. و این رفتن به یک کل ردیف در این آرایه. بنابراین در حال حاضر، ما می خواهیم به تکرار بار نفر به چاپ این ردیف به outfile نفر زمان ما. و بنابراین، این چیزی است که این حلقه در حال انجام است. این حلقه داخلی است که به شمارش خود را ردیف، طول آرایه، چاپ هر پیکسل در آرایه n بار. بنابراین عنصر صفر است که چاپ شده n بار، این عنصر را برای اولین بار است که چاپ بار N. و این نوع از چگونه ما قصد داریم به به صورت افقی در outfile مقیاس، و این حلقه، از ما حلقه N بار، این است که چگونه ما در حال رفتن به مقیاس عمودی. در اینجا، ما می بینیم که ما نیاز به اضافه کردن پد در پایان هر سطر. به همین دلیل این است که در داخل حلقه که چاپ از ردیف N تنها این یک ردیف از INFILE. پس از آن در اینجا، من قصد دارم به جست و خیز بیش از پد در INFILE، پس از یک بار ما با یکی از ردیف های انجام شده INFILE، ما اهمیت ندارد چه بالشتک بود. ما فقط می خواهیم برای رسیدن به ردیف دوم. و پس از آن خواهیم حلقه به عقب و انجام تمام این دوباره برای ردیف دوم. در نهایت، یک بار ما با همه که انجام می شود، ما می توانیم INFILE نزدیک، نزدیک outfile، و بازگشت 0 از آنجا که ما در حال انجام می شود. نام من راب است، و این تغییر اندازه بود. [MUSIC پخش]