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: Szia. 4 00:00:13,210 --> 00:00:16,870 Én Rob és hagyja mérete ezt a problémát. 5 00:00:16,870 --> 00:00:20,990 Így fogunk kezdeni copy.c mint sablon, de mi lesz 6 00:00:20,990 --> 00:00:23,340 hogy jó néhány változás. 7 00:00:23,340 --> 00:00:27,570 >> Most már látjuk, mi rögtön, hogy egy változás, ahol már nem ellenőrzi 8 00:00:27,570 --> 00:00:31,560 a mi RXC nem egyenlő 3, de most mi ellenőrzés rc nem egyenlő 4. 9 00:00:31,560 --> 00:00:34,670 Mivel mi is szeretne venni, az Amellett, hogy az a fájlt, és ki fájlokat 10 00:00:34,670 --> 00:00:39,550 érveket, f ami lesz ez faktor, amellyel mi méretezés. 11 00:00:39,550 --> 00:00:45,430 >> Tehát, ha nem vagyunk biztosak, hogy szeretnénk A s szkennelés f átalakítani a húr 12 00:00:45,430 --> 00:00:49,030 argv1 egy úszó. 13 00:00:49,030 --> 00:00:51,330 És meg fogjuk tárolni hogy tényező. 14 00:00:51,330 --> 00:00:55,180 Ez a kiegészítő karakter van meggyőződve arról, hogy mi valójában nem belépő 15 00:00:55,180 --> 00:00:59,200 olyasmi, mint 1.4 ABC a parancssorban. 16 00:00:59,200 --> 00:01:02,960 >> Most megyünk, hogy egyfajta alias mivel a RV2 és RV3 nem 17 00:01:02,960 --> 00:01:04,310 nagyon hasznos neveket. 18 00:01:04,310 --> 00:01:07,660 Mi ahelyett, hívni fog őket a fájlt, és ki a fájl. 19 00:01:07,660 --> 00:01:11,580 Most megyünk, hogy megbizonyosodjon arról, hogy az a tényező valójában érvényes. 20 00:01:11,580 --> 00:01:16,330 Tehát, ha tényező kisebb, mint vagy egyenlő nulla vagy nagyobb, mint 100, akkor, mint egy 21 00:01:16,330 --> 00:01:19,660 A spec, el kell utasítanunk ezt a tényezőt. 22 00:01:19,660 --> 00:01:23,890 >> Ha biztosak vagyunk benne, hogy ez jó, most már tudjuk nyissa meg a N fájlt, és meg kell, hogy 23 00:01:23,890 --> 00:01:25,950 arról, hogy sikeresen megnyitotta. 24 00:01:25,950 --> 00:01:28,630 Ha ez nem, hogy vissza fog térni null. 25 00:01:28,630 --> 00:01:30,390 Fogunk nyissa ki a fájlt. 26 00:01:30,390 --> 00:01:33,420 És ismét, azt szeretné, hogy ellenőrizze, hogy a róla, hogy sikeresen megnyitotta. 27 00:01:33,420 --> 00:01:37,270 És ha nem sikerült megnyitni, akkor azt is meg kell bizonyosodni arról, hogy lezárja 28 00:01:37,270 --> 00:01:40,870 n fájlt, amely eredetileg sikeresen nyitott, vagy pedig van egy 29 00:01:40,870 --> 00:01:42,600 memóriavesztés. 30 00:01:42,600 --> 00:01:46,350 >> Most fogunk olvasni a bitmap fájl fejlécét, és bitmap információkat 31 00:01:46,350 --> 00:01:48,890 Fejes n fájlt. 32 00:01:48,890 --> 00:01:52,360 Megyünk, hogy megbizonyosodjon arról, hogy az n A fájl érvényes bitmap. 33 00:01:52,360 --> 00:01:52,640 OK. 34 00:01:52,640 --> 00:01:55,100 >> Tehát most fogunk kezdeni hogy néhány változtatást. 35 00:01:55,100 --> 00:01:58,840 Tehát azért, mert mi lesz a változó dolog, először szeretnénk emlékezni a 36 00:01:58,840 --> 00:02:01,510 régi szélessége az n fájlt. 37 00:02:01,510 --> 00:02:05,160 Azt akarjuk, hogy ne feledje, a régi párnázata n fájl ugyanazt a számítást 38 00:02:05,160 --> 00:02:06,990 A copy.c. 39 00:02:06,990 --> 00:02:09,840 >> És most mi fog változni A bitmap infó fejlécét. 40 00:02:09,840 --> 00:02:13,630 És mi megszorozzuk mind a szélesség és a magasságot tényező, hiszen 41 00:02:13,630 --> 00:02:15,750 ez az, amit mi a méretezést. 42 00:02:15,750 --> 00:02:18,420 Megyünk, hogy meghatározzák a új padding a fájl 43 00:02:18,420 --> 00:02:21,140 az új szélességet. 44 00:02:21,140 --> 00:02:27,330 És mi fogja meghatározni az új méretét a képet száma 45 00:02:27,330 --> 00:02:31,610 byte-egy sorban, amely fogja a képpontok számát, hogy az egymás után 46 00:02:31,610 --> 00:02:35,960 szor akkora, mint egy pixel, plusz a bájtok száma padding végén 47 00:02:35,960 --> 00:02:40,310 , hogy a sorban, majd megszorozzuk minden a sorok számát, hogy mi van. 48 00:02:40,310 --> 00:02:43,800 Szóval ez a bájtok számát van a mi képadatok. 49 00:02:43,800 --> 00:02:48,190 >> Bf.Bfsize most lesz a szám byte-ok a mi képünkre béta plus 50 00:02:48,190 --> 00:02:49,350 A méret a fejlécet. 51 00:02:49,350 --> 00:02:53,910 Tehát molett bitmap fájl fejlécében és méretét bitmap infó fejlécét. 52 00:02:53,910 --> 00:02:54,510 OK. 53 00:02:54,510 --> 00:02:56,440 Szóval ez a mi fejlécet. 54 00:02:56,440 --> 00:02:59,030 Tudjuk írni a fájlt, fej és infó fejlécét, hogy a ki 55 00:02:59,030 --> 00:03:01,590 fájlt, és mi a jó. 56 00:03:01,590 --> 00:03:03,800 >> Most itt az ideje, hogy valóban írásban a pixel 57 00:03:03,800 --> 00:03:05,120 adatokat az out fájlt. 58 00:03:05,120 --> 00:03:10,460 Megyünk, hogy állapítsa meg a buffer méret old szélesség RGB háromágyas, és mi 59 00:03:10,460 --> 00:03:13,790 majd, hogy állapítsa meg a változó neve sorban zsibbad, ami fogjuk 60 00:03:13,790 --> 00:03:15,640 eredetileg egyenlő negatív 1.. 61 00:03:15,640 --> 00:03:19,090 Majd meglátjuk, hogy mi lesz a hogy annak érdekében, hogy nyomon követni, hogy mi 62 00:03:19,090 --> 00:03:22,640 sor jelenleg betöltött ebbe a puffer. 63 00:03:22,640 --> 00:03:23,290 OK. 64 00:03:23,290 --> 00:03:28,750 >> Tehát most ellentétben a standard változat, ahelyett, hogy az iterációt az a 65 00:03:28,750 --> 00:03:32,900 fájl fogunk végighaladni az egyes sor az out fájlt, és kitalálni, 66 00:03:32,900 --> 00:03:38,130 amely sort a fájlba szeretnénk elhelyezni ebben a sorban az out fájlt. 67 00:03:38,130 --> 00:03:44,930 Tehát az iterációt minden sora a ki fájl az új magasságot, mi vagyunk az első 68 00:03:44,930 --> 00:03:48,890 fogja meghatározni, a sort a régi fájlt fogunk használni, ami vagyunk 69 00:03:48,890 --> 00:03:53,560 fog tenni azáltal, hogy ezt a jelenlegi sor osztva tényező. 70 00:03:53,560 --> 00:03:58,000 Szóval ez megy, hogy nekünk a sor a régi fájlt akarunk. 71 00:03:58,000 --> 00:04:03,310 >> Tehát most, ha sor zsibbad nem egyenlő a régi y, mi lesz, hogy olvassa el a sort 72 00:04:03,310 --> 00:04:05,940 hogy azt akarjuk, a mi cur sorba puffer. 73 00:04:05,940 --> 00:04:07,700 Szóval, hogyan fogjuk csinálni? 74 00:04:07,700 --> 00:04:11,650 Először is, mi lesz, hogy kitaláljuk, a helyzetben, hogy kezdődik, hogy sorban a 75 00:04:11,650 --> 00:04:13,100 eredeti fájlt. 76 00:04:13,100 --> 00:04:18,630 Úgy, hogy az lesz múlt minden a mi fejléc és 77 00:04:18,630 --> 00:04:21,589 Most már a régi y sorokat. 78 00:04:21,589 --> 00:04:23,880 >> És így, hogy hány bájt van egy sorban? 79 00:04:23,880 --> 00:04:28,740 Ismét mérete RGB hármas alkalommal régi szélesség plusz régi padding, hogy ez a 80 00:04:28,740 --> 00:04:30,640 byte-ok száma egy sorban. 81 00:04:30,640 --> 00:04:33,680 És azt akarjuk, hogy hagyja már a régi y sorokat. 82 00:04:33,680 --> 00:04:37,580 Így fogunk f keresni, és mi vagyunk segítségével keresik meg kell kezdeni a 83 00:04:37,580 --> 00:04:39,100 elején egy fájlt. 84 00:04:39,100 --> 00:04:42,740 Fogunk f célja, hogy ezt a pozíciót a fájlban, hogy minket a 85 00:04:42,740 --> 00:04:46,500 kezdve a sor akarunk , hogy olvassa el a mi puffer. 86 00:04:46,500 --> 00:04:48,510 >> Fogunk beállítani sorban zsibbadt egyenlő régi y. 87 00:04:48,510 --> 00:04:53,080 Tehát most, ha visszafordul, és azt akarjuk, hogy Ezzel az ugyanabban a sorban a mi out fájlt, 88 00:04:53,080 --> 00:04:55,970 akkor nem fogunk olvasni be újra feleslegesen. 89 00:04:55,970 --> 00:04:59,310 Szóval tényleg, sor zsibbad a csak egy optimalizálás. 90 00:04:59,310 --> 00:05:05,500 >> Végül fogunk olvasni a aktuális sor a régi szélesség RGB háromágyas 91 00:05:05,500 --> 00:05:08,040 hogy szeretnénk az eredeti fájlt. 92 00:05:08,040 --> 00:05:12,270 Tehát most akt sor tartalmazza a képpontok az eredeti fájlt szeretnénk 93 00:05:12,270 --> 00:05:14,200 írjon az out fájlt. 94 00:05:14,200 --> 00:05:18,960 Tehát most, csakúgy, mint a fenti, hanem iterációjával át a régi fájlt, szükségünk van 95 00:05:18,960 --> 00:05:22,560 hogy végighaladni az új fájlokat sorokat. 96 00:05:22,560 --> 00:05:27,450 Hát itt van, ahelyett, hogy az iterációt minden a régi képpont hogy akt sorban, 97 00:05:27,450 --> 00:05:31,210 akarunk végighaladni az összes képpontok új fájl e 98 00:05:31,210 --> 00:05:32,480 adott sorban. 99 00:05:32,480 --> 00:05:34,140 >> Miért akarunk csinálni? 100 00:05:34,140 --> 00:05:38,960 Mert azt látjuk, hogy itt nem vagyunk valóban feltétlenül az összes 101 00:05:38,960 --> 00:05:41,020 pixel az eredeti fájlt. 102 00:05:41,020 --> 00:05:46,630 Mert ha mi zsugorodik, talán valóban ki akarja hagyni a pixel. 103 00:05:46,630 --> 00:05:48,090 És azt látjuk, hogy ez a - 104 00:05:48,090 --> 00:05:49,690 x osztva tényező - 105 00:05:49,690 --> 00:05:55,620 szorosan követi itt, ahol azt mondjuk, hogy y osztva tényező, hogy kitaláljuk, hogy 106 00:05:55,620 --> 00:06:02,480 a régi y-edik sorban megfelel az y-adik sor ebben az új fájlt. 107 00:06:02,480 --> 00:06:05,880 >> Most fogunk írni az összes a pixel a régi sor 108 00:06:05,880 --> 00:06:07,440 a mi új sort. 109 00:06:07,440 --> 00:06:10,890 Miután tettünk, hogy mi kell, hogy csak fel a kitöltés végén a sor 110 00:06:10,890 --> 00:06:15,540 és mi loop vissza, és továbbra is az összes sort a mi új fájlba. 111 00:06:15,540 --> 00:06:19,390 A végén meg kell zárni a régi fájlt, zárja be az új fájlt, és vissza 112 00:06:19,390 --> 00:06:21,540 nulla, mert minden rendben ment. 113 00:06:21,540 --> 00:06:24,220 >> A nevem Rob, és ez volt a szünet. 114 00:06:24,220 --> 00:06:29,184 >> [MUSIC Playing]