1 00:00:00,000 --> 00:00:00,996 2 00:00:00,996 --> 00:00:12,470 >> [MUSIC PLAYING] 3 00:00:12,470 --> 00:00:13,210 >> Rob Bowden: Hi. 4 00:00:13,210 --> 00:00:16,870 Mən Rob Ben edək ölçüsü Bu problemin up. 5 00:00:16,870 --> 00:00:20,990 Belə ki, biz copy.c ilə başlamaq olacaq bir şablon, lakin biz olacaq 6 00:00:20,990 --> 00:00:23,340 bir neçə dəyişikliklər edilməsi. 7 00:00:23,340 --> 00:00:27,570 >> İndi biz dərhal edirik bax biz artıq yoxlanılması olduğunuz dəyişdirmək 8 00:00:27,570 --> 00:00:31,560 Bizim rxc indi 3 bərabər, lakin etməz biz rc kontrol edirik 4 bərabər deyil. 9 00:00:31,560 --> 00:00:34,670 Biz də, daxil etmək istəyirəm ildən fayl və faylları əlavə 10 00:00:34,670 --> 00:00:39,550 bu olacaq olan dəlilləri, f biz scaling edirik olan amil. 11 00:00:39,550 --> 00:00:45,430 >> Biz ki, emin Belə ki, bir dəfə biz istəyirik simli çevirmək s scan f istifadə 12 00:00:45,430 --> 00:00:49,030 bir float argv1. 13 00:00:49,030 --> 00:00:51,330 Və biz saxlamaq olacaq ki, amil. 14 00:00:51,330 --> 00:00:55,180 Bu əlavə xarakter əmin edir biz, həqiqətən, daxil deyil ki, 15 00:00:55,180 --> 00:00:59,200 1.4 ABC kimi bir şey command line. 16 00:00:59,200 --> 00:01:02,960 >> İndi biz takma yaratmaq olacaq RV2 və RV3 deyil, çünki 17 00:01:02,960 --> 00:01:04,310 çox faydalı adları. 18 00:01:04,310 --> 00:01:07,660 Biz əvəzinə, zəng olacaq Onlara fayl və fayl həyata. 19 00:01:07,660 --> 00:01:11,580 İndi biz əmin etmək olacaq Bizim amil həqiqətən etibarlı idi. 20 00:01:11,580 --> 00:01:16,330 Belə ki, amil daha az və ya bərabər olduqda sıfır və ya daha çox 100-dən, sonra başına 21 00:01:16,330 --> 00:01:19,660 spec biz rədd etməlidir ki, amil. 22 00:01:19,660 --> 00:01:23,890 >> Biz əmin olduğunuzda indi biz, yaxşı n faylı açın və biz etmək 23 00:01:23,890 --> 00:01:25,950 uğurla açıldı əmin olun. 24 00:01:25,950 --> 00:01:28,630 Bu olmasaydı, ki null qayıdacaqlar. 25 00:01:28,630 --> 00:01:30,390 Biz həyata faylı açmaq olacaq. 26 00:01:30,390 --> 00:01:33,420 Və yenə, biz etmək check istədiyiniz əmin uğurla açdı. 27 00:01:33,420 --> 00:01:37,270 Və o, uğurla, sonra açıq olmasaydı biz də yaxın əmin olmaq lazımdır 28 00:01:37,270 --> 00:01:40,870 n fayl olan ilk uğurla açılan, və ya başqa biz bir 29 00:01:40,870 --> 00:01:42,600 yaddaş sızıntısı. 30 00:01:42,600 --> 00:01:46,350 >> Belə ki, indi biz bitmap oxumaq olacaq fayl header və bitmap info 31 00:01:46,350 --> 00:01:48,890 n faylı header. 32 00:01:48,890 --> 00:01:52,360 Biz əmin etmək olacaq n fayl cari bitmap idi. 33 00:01:52,360 --> 00:01:52,640 OK. 34 00:01:52,640 --> 00:01:55,100 >> Belə ki, indi biz başlamaq olacaq bəzi dəyişikliklər edilməsi. 35 00:01:55,100 --> 00:01:58,840 Biz dəyişdirilməsi olacaq, çünki şeylər, biz ilk xatırlamaq istəyirəm 36 00:01:58,840 --> 00:02:01,510 n fayl köhnə eni. 37 00:02:01,510 --> 00:02:05,160 Biz köhnə padding və xatırlamaq istəyirəm Eyni hesablanması istifadə edərək n fayl 38 00:02:05,160 --> 00:02:06,990 copy.c. dən 39 00:02:06,990 --> 00:02:09,840 >> Və indi biz dəyişiklik olacaq bitmap info header. 40 00:02:09,840 --> 00:02:13,630 Və belə ki, biz eni də vurulması edirik və ildən amil hündürlüyü 41 00:02:13,630 --> 00:02:15,750 ki, biz scaling edirik. 42 00:02:15,750 --> 00:02:18,420 Biz müəyyən olacaq fayl ilə yeni padding 43 00:02:18,420 --> 00:02:21,140 yeni eni istifadə. 44 00:02:21,140 --> 00:02:27,330 Və biz yeni müəyyən etmək olacaq sayı istifadə image ölçüsü 45 00:02:27,330 --> 00:02:31,610 niyyətində olan bir sıra bayt ki, üst-üstə piksel sayı 46 00:02:31,610 --> 00:02:35,960 dəfə bir pixel ölçüsü üstəgəl sonunda padding bayt sayı 47 00:02:35,960 --> 00:02:40,310 ki, sıra, və bütün vurulması biz ki, satır sayı. 48 00:02:40,310 --> 00:02:43,800 Belə ki bytes sayı var biz image data var. 49 00:02:43,800 --> 00:02:48,190 >> Bf.Bfsize indi sayı olacaq bizim image beta bayt plus 50 00:02:48,190 --> 00:02:49,350 Bizim başlıqlarını ölçüsü. 51 00:02:49,350 --> 00:02:53,910 Bitmap fayl header belə plus ölçüsü və bitmap info mövzu ölçüsü. 52 00:02:53,910 --> 00:02:54,510 OK. 53 00:02:54,510 --> 00:02:56,440 Belə ki, bizim mövzular üçün bu. 54 00:02:56,440 --> 00:02:59,030 Biz fayl baş yaza bilərsiniz Bizim out info header 55 00:02:59,030 --> 00:03:01,590 fayl və biz yaxşı deyilik. 56 00:03:01,590 --> 00:03:03,800 >> İndi həqiqətən başlamaq üçün vaxt Bu pixel yazı 57 00:03:03,800 --> 00:03:05,120 həyata fayl data. 58 00:03:05,120 --> 00:03:10,460 Biz ölçüsü bufer elan olacaq köhnə eni RGB üç dəfə, və biz 59 00:03:10,460 --> 00:03:13,790 adlı dəyişən elan etmək niyyətindədir biz olacaq olan sıra donmuş, 60 00:03:13,790 --> 00:03:15,640 ilkin mənfi 1 bərabər müəyyən. 61 00:03:15,640 --> 00:03:19,090 Biz istifadə etmək olacaq ki, görürsünüz ki, nə takip üçün 62 00:03:19,090 --> 00:03:22,640 Hal-hazırda yüklü sıra Bu bufer daxil. 63 00:03:22,640 --> 00:03:23,290 OK. 64 00:03:23,290 --> 00:03:28,750 >> Belə ki, indi standart nəşr fərqli olaraq əvəzinə in üzərində iterating 65 00:03:28,750 --> 00:03:32,900 fayl, biz hər üzərində təkrarlamaq olacaq həyata faylı satır və anlamaq 66 00:03:32,900 --> 00:03:38,130 biz istəyirik fayl olan sıra həyata faylı bu sırada yer. 67 00:03:38,130 --> 00:03:44,930 Belə ki, həyata bütün satır üzərində iterating Yeni boyu istifadə edərək fayl, biz ilk istəyirik 68 00:03:44,930 --> 00:03:48,890 köhnə sıra müəyyən etmək üçün gedir biz istəyirik ki, istifadə etmək olacaq fayl 69 00:03:48,890 --> 00:03:53,560 Bu cari alaraq edəcəyimiz sıra amil bölünür. 70 00:03:53,560 --> 00:03:58,000 Belə ki, bizə sıra vermək olacaq biz istəyirik ki, köhnə fayl. 71 00:03:58,000 --> 00:04:03,310 >> Belə ki, indi əgər sıra donmuş bərabər köhnə y yoxdur, biz sıra oxumaq üçün olacaq 72 00:04:03,310 --> 00:04:05,940 biz cur sıra bufer daxil istəyirəm ki,. 73 00:04:05,940 --> 00:04:07,700 Belə ki, necə biz bunu edəcəyik? 74 00:04:07,700 --> 00:04:11,650 Birincisi, biz anlamaq olacaq Bu ki, sıra başlayır mövqeyi 75 00:04:11,650 --> 00:04:13,100 original file. 76 00:04:13,100 --> 00:04:18,630 Belə ki, mövqe olacaq Bizim mövzular və bütün keçmiş 77 00:04:18,630 --> 00:04:21,589 İndi keçmiş köhnə y satır. 78 00:04:21,589 --> 00:04:23,880 >> Və neçə bayt bir sıra var? 79 00:04:23,880 --> 00:04:28,740 Yenə üç dəfə RGB ölçüsü köhnə width plus köhnə padding, belə ki, var 80 00:04:28,740 --> 00:04:30,640 bir sıra bayt sayı. 81 00:04:30,640 --> 00:04:33,680 Və biz keçmiş köhnə y satır keçmək istəyirəm. 82 00:04:33,680 --> 00:04:37,580 Beləliklə, biz f axtarmaq olacaq və biz Bu başlamaq üçün set axtarmaq istifadə 83 00:04:37,580 --> 00:04:39,100 bir fayl başlayan. 84 00:04:39,100 --> 00:04:42,740 Biz bu vəziyyəti geri axtarmaq f olacaq fayl, bu bizə qoyaraq 85 00:04:42,740 --> 00:04:46,500 Biz istəyirik sırasında başlayan bizim bufer daxil oxumaq üçün. 86 00:04:46,500 --> 00:04:48,510 >> Biz sıra müəyyən olacaq köhnə y bərabər key. 87 00:04:48,510 --> 00:04:53,080 Belə ki, indi əgər biz loop geri və biz istəyirik Bizim həyata faylı bu eyni sıra istifadə, 88 00:04:53,080 --> 00:04:55,970 sonra biz oxumaq fikrində deyilik Bu yenidən lazımsız. 89 00:04:55,970 --> 00:04:59,310 Belə ki, həqiqətən, sıra donmuş yalnız bir optimallaşdırılması. 90 00:04:59,310 --> 00:05:05,500 >> Nəhayət, biz oxumaq olacaq cari sıra köhnə eni RGB üç dəfə 91 00:05:05,500 --> 00:05:08,040 Biz orijinal fayl istəyirəm ki,. 92 00:05:08,040 --> 00:05:12,270 Belə ki, indi CUR sıra olan piksel var biz istəyirik ki, orijinal fayl 93 00:05:12,270 --> 00:05:14,200 həyata fayla yazmaq. 94 00:05:14,200 --> 00:05:18,960 Belə ki, indi, yalnız yuxarıda kimi, yerinə köhnə fayl üzərində iterating, biz lazım 95 00:05:18,960 --> 00:05:22,560 yeni faylları satır üzərində təkrarlamaq. 96 00:05:22,560 --> 00:05:27,450 Yaxşı, burada əvəzinə üzərində iterating bütün köhnə piksel ki cur sıra, 97 00:05:27,450 --> 00:05:31,210 biz bütün təkrarlamaq istəyirəm Bu bizim yeni fayl pixels 98 00:05:31,210 --> 00:05:32,480 xüsusi satır. 99 00:05:32,480 --> 00:05:34,140 >> Niyə biz bunu istəyirsiniz? 100 00:05:34,140 --> 00:05:38,960 Biz deyilik ki, burada baxın Çünki həqiqətən mütləq bütün istifadə 101 00:05:38,960 --> 00:05:41,020 orijinal fayl pixels. 102 00:05:41,020 --> 00:05:46,630 Biz azalan edirsinizsə, biz bilər, çünki əslində piksel keçmək istəyirəm. 103 00:05:46,630 --> 00:05:48,090 Və biz bu bax - 104 00:05:48,090 --> 00:05:49,690 x amil bölünür - 105 00:05:49,690 --> 00:05:55,620 biz y demək olduğu yaxından burada güzgülər anlamaq üçün amil bölünür ki, 106 00:05:55,620 --> 00:06:02,480 köhnə y-ci sıra uyğundur Bu yeni fayl y-ci sıra. 107 00:06:02,480 --> 00:06:05,880 >> İndi biz bütün yazmaq olacaq köhnə sıra bu pixels 108 00:06:05,880 --> 00:06:07,440 yeni sıra daxil. 109 00:06:07,440 --> 00:06:10,890 Biz etdik, biz lazımdır yalnız bizim sıra sonunda padding qoymaq 110 00:06:10,890 --> 00:06:15,540 və biz geri loop olacaq və davam yeni fayl satır bütün. 111 00:06:15,540 --> 00:06:19,390 Sonda, biz köhnə bağlamaq lazımdır , fayl yeni fayl yaxın və qaytarılması 112 00:06:19,390 --> 00:06:21,540 sıfır hər şey gözəl getdi, çünki. 113 00:06:21,540 --> 00:06:24,220 >> My name Rob və bu Recess idi. 114 00:06:24,220 --> 00:06:29,184 >> [MUSIC PLAYING]