1 00:00:00,000 --> 00:00:12,240 >> [MUSIC PLAYING] 2 00:00:12,240 --> 00:00:15,870 >> Rob Bowden: Hi, I Rob deyiləm, qoy ölçüsü üçün bu cəhd edin. 3 00:00:15,870 --> 00:00:21,100 Belə ki, biz yenidən başlamaq üçün gedir əsasən bir copy.c surəti, və 4 00:00:21,100 --> 00:00:22,860 Bir neçə dəyişikliklər etmək. 5 00:00:22,860 --> 00:00:26,280 Dərhal biz bir dəyişiklik görmək Qeyd yerləşir əvəzinə görmək yoxlanılması əgər 6 00:00:26,280 --> 00:00:30,440 argc, biz yoxlamaq 3 bərabər deyil istəyir argc ildən, 4 bərabər deyil, əgər 7 00:00:30,440 --> 00:00:34,350 İndi biz yalnız bir INFILE alaraq deyilik və outfile, lakin biz də qəbul edirik 8 00:00:34,350 --> 00:00:38,980 biz istəyirik ki, məbləği olan n, orijinal image ilə scaling. 9 00:00:38,980 --> 00:00:44,340 Biz ki, emin, biz yalnız ATOI istifadə edərək tam n çevirmək. 10 00:00:44,340 --> 00:00:48,760 >> Belə ki, indi biz bəzi yaratmaq olacaq takma, yalnız 2 INFILE argv zəng və 11 00:00:48,760 --> 00:00:54,240 argv 3 outfile, argv 2 və çünki argv 3 çox faydalı adları deyil. 12 00:00:54,240 --> 00:00:58,510 İndi biz əmin n etmək üçün check istədiyiniz çərçivəsində biz gözləyirik, belə ki, 13 00:00:58,510 --> 00:01:02,910 spec ifadə edən az və ya əgər , sıfıra bərabər və ya 100-dən çox 14 00:01:02,910 --> 00:01:08,580 o yalnış ölçüsünü amil var, və biz istifadəçi xəbərdar etməlidir. 15 00:01:08,580 --> 00:01:13,090 >> Biz bütün kənarda istəyirik, biz nəhayət bizim INFILE açmaq, və biz lazım 16 00:01:13,090 --> 00:01:16,270 əmin olun səhv etmək açılış nədənsə uğursuz olmadı. 17 00:01:16,270 --> 00:01:19,860 Biz OUTFILE açmaq lazımdır, və daha əmin olun səhv 18 00:01:19,860 --> 00:01:21,250 nədənsə uğursuz olmadı. 19 00:01:21,250 --> 00:01:26,270 Amma əmin olun əgər açılış outfile biz bağlamaq lazımdır ki, uğursuz 20 00:01:26,270 --> 00:01:29,040 artıq açıldı olan INFILE. 21 00:01:29,040 --> 00:01:33,690 >> Belə ki, sonra, uğursuz etməyib fərz BİZ beləyik - yalnız kimi copy.c - 22 00:01:33,690 --> 00:01:36,140 mövzu oxumaq üçün gedir Bu INFILE olan. 23 00:01:36,140 --> 00:01:40,130 Biz əmin bir etibarlı etmək olacaq bitmap, lakin indi biz bəzi nə olacaq 24 00:01:40,130 --> 00:01:41,620 bir az fərqli şeylər. 25 00:01:41,620 --> 00:01:44,870 Belə ki, birinci, biz istəyirəm olacaq orijinal eni və hündürlüyü xatırlayıram 26 00:01:44,870 --> 00:01:48,290 Bu INFILE, çünki biz olacaq Bu outfile üçün dəyişən. 27 00:01:48,290 --> 00:01:53,890 Belə ki, indi qəribə səbəblərdən olduğunu unutmayın bi.biheight, mənfi, və 28 00:01:53,890 --> 00:01:58,670 belə faktiki hündürlüyü, müsbət, Mütləq dəyər etmək istəyirəm. 29 00:01:58,670 --> 00:02:02,580 >> İndi, padding eyni olacaq Bu copy.c idi hesablanması kimi, 30 00:02:02,580 --> 00:02:06,060 köhnə eni istifadə edərək, və indi biz istəyirik həqiqətən dəyişdirmək niyyətindədir 31 00:02:06,060 --> 00:02:07,320 Bizim mövzu nə var. 32 00:02:07,320 --> 00:02:11,200 Belə ki, biz bizim eni çoxaltmaq olacaq n, biz eni scaling edirik 33 00:02:11,200 --> 00:02:15,100 biz deyilik ildən n, n hündürlüyü çoxaltmaq n scaling, və indi biz 34 00:02:15,100 --> 00:02:19,250 yeni padding üçün hesablanması yeni eni əsaslanır. 35 00:02:19,250 --> 00:02:21,840 >> Belə ki, indi biz bəzi dəyişdirmək lazımdır Bizim mövzu digər sahələrdə. 36 00:02:21,840 --> 00:02:26,890 Bi.biSizeImage olmaq üçün nəzərdə tutulur piksel bütün bayt ölçüsü 37 00:02:26,890 --> 00:02:28,520 və image padding. 38 00:02:28,520 --> 00:02:34,190 Və bizim bir sıra ölçüsü image RGB ölçüsü üç, ölçüsü 39 00:02:34,190 --> 00:02:39,430 bir pixel, dəfə sayı Bir sıra piksel, üstəgəl padding da 40 00:02:39,430 --> 00:02:40,910 sıra sonu. 41 00:02:40,910 --> 00:02:45,200 Və sonra biz tərəfindən çoxaltmaq olacaq almaq üçün bizim hündürlüyü mütləq dəyər 42 00:02:45,200 --> 00:02:48,350 bytes ümumi sayı image data. 43 00:02:48,350 --> 00:02:53,050 bf.bfSize yalnız ümumi sayı bizim image data bayt, belə ki, 44 00:02:53,050 --> 00:02:56,530 bi.biSizeImage, üstəgəl Bizim mövzular ölçüsü. 45 00:02:56,530 --> 00:02:59,850 Belə ki, bitmap fayl ölçüsü əlavə bitmap info header, və ölçüsü 46 00:02:59,850 --> 00:03:00,800 OK, header. 47 00:03:00,800 --> 00:03:03,170 Belə ki, biz lazım olan bütün var Bizim başlıqlarını dəyişmək. 48 00:03:03,170 --> 00:03:07,020 İndi biz bitmap fayl mövzu yazmaq lazımdır bizim outfile və bitmap info 49 00:03:07,020 --> 00:03:09,880 İndi bizim outfile header, və biz davam başlamaq üçün hazır 50 00:03:09,880 --> 00:03:11,990 faktiki piksel üzərində. 51 00:03:11,990 --> 00:03:15,720 >> Beləliklə, biz təkrarlamaq istəyirəm Bu INFILE nin scan xətləri. 52 00:03:15,720 --> 00:03:17,730 Beləliklə, biz oldheight üzərində təkrarlamaq istəyirəm. 53 00:03:17,730 --> 00:03:20,830 Biz xatırlamaq üçün lazım nə Bu biz bunu dəyişdirmək əvvəl orijinal hündürlüyü, 54 00:03:20,830 --> 00:03:23,040 və n onu miqyaslı. 55 00:03:23,040 --> 00:03:27,810 İndi biz bir oxumaq olacaq bir daxil INFILE sıra 56 00:03:27,810 --> 00:03:30,630 ölçüsü oldwidth bufer. 57 00:03:30,630 --> 00:03:36,190 RGB Odur ki, biz freading edirik ölçüsü üç, bir pixel və köhnə eni 58 00:03:36,190 --> 00:03:39,760 bizim bufer daxil INFILE onları. 59 00:03:39,760 --> 00:03:43,480 Və bütün olacaq Bu array satır. 60 00:03:43,480 --> 00:03:50,390 Belə ki, indi biz n dəfə təkrarlamaq istəyirəm bizim outfile n dəfə bu sıraya çap. 61 00:03:50,390 --> 00:03:52,510 Və belə ki, bu loop nə var. 62 00:03:52,510 --> 00:03:57,910 Bu daxili loop üzərində iterating olunur Bu array, çap üzərində özünü sıra 63 00:03:57,910 --> 00:04:00,710 serialın n dəfə hər pixel. 64 00:04:00,710 --> 00:04:04,510 Belə ki, zeroth element çap olunur n dəfə ilk element olunur 65 00:04:04,510 --> 00:04:05,660 n dəfə çap. 66 00:04:05,660 --> 00:04:10,820 Və sort necə biz davam edirik yatay outfile miqyaslı, və 67 00:04:10,820 --> 00:04:13,390 Bu loop, biz n loop edirik dəfə, biz olacaq necə 68 00:04:13,390 --> 00:04:15,580 şaquli miqyaslı. 69 00:04:15,580 --> 00:04:19,850 >> Aşağı burada, biz əlavə etmək lazımdır ki, bax hər sıra sonunda padding. 70 00:04:19,850 --> 00:04:25,050 Bu üçün loop içində nə var yalnız bu n satır çap edir 71 00:04:25,050 --> 00:04:28,400 Bu INFILE bu bir sıra. 72 00:04:28,400 --> 00:04:32,150 Sonra aşağı burada, mən artıq keçmək üçün gedirəm Bu INFILE ildə padding, bir dəfə ildən 73 00:04:32,150 --> 00:04:34,560 biz bir sıra ilə tamamlayın INFILE, biz qayğı yoxdur 74 00:04:34,560 --> 00:04:35,290 nə padding idi. 75 00:04:35,290 --> 00:04:37,110 Biz yalnız ikinci sırada almaq istəyirəm. 76 00:04:37,110 --> 00:04:40,870 Və sonra biz geri loop olacaq və hər şeyi bu yenə ikinci sırada üçün. 77 00:04:40,870 --> 00:04:44,406 >> Nəhayət, bir dəfə biz bütün ilə tamamlayın, biz yaxın INFILE bağlaya bilər 78 00:04:44,406 --> 00:04:47,430 Bu outfile və qaytarılması 0 biz tamamlayın çünki. 79 00:04:47,430 --> 00:04:50,330 >> My name Rob və bu ölçüsünü idi. 80 00:04:50,330 --> 00:04:54,934 >> [MUSIC PLAYING]