1 00:00:00,000 --> 00:00:09,500 >> [MUSIC ప్లే] 2 00:00:09,500 --> 00:00:12,350 >> ZAMYLA చాన్: ఇది మిస్ స్కార్లెట్ ఉంది దీపస్తంభమును తో. 3 00:00:12,350 --> 00:00:13,560 హూడన్ఇట్? 4 00:00:13,560 --> 00:00:15,030 Well, మేము కనుగొనేందుకు చూడాలని. 5 00:00:15,030 --> 00:00:20,870 బోర్డ్ గేమ్ క్లూ, మీరు వాటిని భౌతిక ఎరుపు చిత్రం ఇవ్వాలి. 6 00:00:20,870 --> 00:00:24,120 మరియు ఆ చిత్రం చాలా ఎరుపు మరియు ఉంది స్పాటీ, మరియు మీ ఉద్యోగం ఉంది 7 00:00:24,120 --> 00:00:25,490 దాగి సందేశాన్ని బహిర్గతం. 8 00:00:25,490 --> 00:00:29,740 మరియు సాధారణంగా మీరు ఒక Red తో అందించిన చేస్తున్నారు భూతద్దం లేదా ఒక ఎరుపు స్క్రీన్ 9 00:00:29,740 --> 00:00:31,410 దాచిన సందేశాన్ని బహిర్గతం. 10 00:00:31,410 --> 00:00:33,340 బాగా, మేము ఆ అనుకరించేందుకు వెళుతున్న. 11 00:00:33,340 --> 00:00:37,960 >> హూడన్ఇట్ లో, మీరు ఒక బిట్మ్యాప్ చిత్రం ఇచ్చిన చేస్తున్నారు ఆ, చాలా స్పాటీ మరియు ఎరుపు కనిపిస్తోంది 12 00:00:37,960 --> 00:00:43,430 ఆపై హూడన్ఇట్ అమలు ఒక రహస్య సందేశాన్ని బహిర్గతం. 13 00:00:43,430 --> 00:00:45,650 >> కాబట్టి యొక్క దశలను ఈ బ్రేక్ వీలు. 14 00:00:45,650 --> 00:00:50,390 మొదట, మీరు ఫైల్ను తెరవడం మీరు - మీరు ఇచ్చిన చేసిన క్లూ. 15 00:00:50,390 --> 00:00:53,880 మరియు తర్వాత కూడా ఒక సృష్టించడానికి తీర్పు బిట్మ్యాప్ ఫైలు. 16 00:00:53,880 --> 00:00:58,240 అప్పుడు మీరు బిట్మ్యాప్ నవీకరించాలనుకున్న తీర్పు outfile కోసం సమాచారం శీర్షిక. 17 00:00:58,240 --> 00:00:59,920 తరువాత ఆ మరింత. 18 00:00:59,920 --> 00:01:04,319 ఆపై మీరు లోకి చదవండి చూడాలని క్లూ scanline, పిక్సెల్ ద్వారా పిక్సెల్, 19 00:01:04,319 --> 00:01:07,320 వంటి పిక్సెల్ రంగులు మార్చడం అవసరం, మరియు రచన 20 00:01:07,320 --> 00:01:08,960 తీర్పు లోకి ఆ - 21 00:01:08,960 --> 00:01:12,000 పిక్సెల్ ద్వారా పిక్సెల్ తీర్పు scanline. 22 00:01:12,000 --> 00:01:13,780 >> ఎలా మేము ఈ వెళ్ళినప్పుడు ప్రారంభం చెయ్యాలి? 23 00:01:13,780 --> 00:01:16,940 బాగా, అదృష్టవశాత్తూ, మేము copy.c కలిగి పంపిణీ కోడ్. 24 00:01:16,940 --> 00:01:21,240 మరియు ఈ నిరూపించడానికి అన్నారు మాకు చాలా ఉపయోగకరంగా. 25 00:01:21,240 --> 00:01:29,700 Copy.c, ఒక ఫైల్ తెరుచుకుంటుంది లో చదువుతుంది అప్పుడు infile యొక్క శీర్షిక, మరియు నవీకరణలను 26 00:01:29,700 --> 00:01:31,070 outfile యొక్క శీర్షిక. 27 00:01:31,070 --> 00:01:37,010 అది లో ప్రతి పిక్సెల్ చదువుతుంది అప్పుడు scanline, పిక్సెల్ ద్వారా పిక్సెల్, మరియు 28 00:01:37,010 --> 00:01:42,390 outfile ఆ పిక్సెల్ రాశారు. 29 00:01:42,390 --> 00:01:45,020 >> కాబట్టి, మీ మొదటి అడుగు వాటిని క్రింది అమలు 30 00:01:45,020 --> 00:01:46,420 టెర్మినల్ లో కమాండ్ - 31 00:01:46,420 --> 00:01:50,270 cp copy.c whodunit.c. 32 00:01:50,270 --> 00:01:55,320 ఈ కాపీని సృష్టిస్తుంది copy.c whodunit.c అనే. 33 00:01:55,320 --> 00:01:58,320 కాబట్టి తెరవడానికి మా మొదటి అడుగు ఫైలు, బాగా, ఒక ఖచ్చితమైన ఉంది 34 00:01:58,320 --> 00:02:00,070 copy.c. ఆ ప్రతిరూపం 35 00:02:00,070 --> 00:02:03,360 నేను చూడండి మీరు చెప్పను. 36 00:02:03,360 --> 00:02:07,860 >> మేము ఈ pset లో తో ఉంది వ్యవహరించే ఏమి ఫైలు I / O, ప్రధానంగా ఫైళ్లు తీసుకొని, 37 00:02:07,860 --> 00:02:10,229 , పఠనం, రాయడం, సవరణ. 38 00:02:10,229 --> 00:02:12,650 ఎలా మీరు మొదటి ఒక ఫైల్ను తెరవడం చెయ్యాలి? 39 00:02:12,650 --> 00:02:16,800 సరే, మీరు ఒక ఫైల్ ప్రకటించాలని వెళుతున్న పాయింటర్, మరియు తర్వాత మీరు కాల్ 40 00:02:16,800 --> 00:02:18,670 ఫంక్షన్ fopen. 41 00:02:18,670 --> 00:02:23,150 మార్గం, లేదా ఆ పేరిట పాస్ ఫైల్, ఆపై మీకు కావలసిన మోడ్ 42 00:02:23,150 --> 00:02:24,700 సైన్ ఫైలు తెరవడానికి 43 00:02:24,700 --> 00:02:28,620 ఒక r నేమి తెరవబడుతుంది పఠనం కోసం foo.bmp. 44 00:02:28,620 --> 00:02:35,670 అయితే ఒక w లో ఉత్తీర్ణత fopen రెడీ ఓపెన్ bar.bmp, ఫైల్ వ్రాయడం కోసం మరియు 45 00:02:35,670 --> 00:02:37,020 దీన్ని సంకలనం. 46 00:02:37,020 --> 00:02:41,970 >> కాబట్టి ఇప్పుడు మేము మోపడం చేసిన మా తదుపరి దశలో శీర్షిక సమాచారం అప్డేట్ ఉంది 47 00:02:41,970 --> 00:02:43,230 outfile కోసం. 48 00:02:43,230 --> 00:02:44,610 ఒక శీర్షిక ఏమిటి? 49 00:02:44,610 --> 00:02:48,160 ముందుగల మేము తెలుసుకోవాలి ఏమి ఒక బిట్మ్యాప్ను. 50 00:02:48,160 --> 00:02:51,000 ఒక బిట్మ్యాప్ కేవలం ఉంది బైట్లు అమరిక. 51 00:02:51,000 --> 00:02:55,480 మరియు వారు ఈ ఫైలు లో ప్రకటించింది చేస్తున్నారు కొంత ఇక్కడ, bmp.h, 52 00:02:55,480 --> 00:02:58,610 ఏమి ఒక బిట్మ్యాప్ సమాచారం నిజానికి తయారు చేస్తారు. 53 00:02:58,610 --> 00:03:05,730 కానీ మాకు శ్రద్ధ ఉంది బిట్మ్యాప్ ఫైలు శీర్షిక, ఇక్కడే, మరియు 54 00:03:05,730 --> 00:03:08,460 ఇక్కడ పైగా బిట్మ్యాప్ సమాచారం శీర్షిక,. 55 00:03:08,460 --> 00:03:13,170 శీర్షిక ఒక జంట యొక్క కూర్చిన చాలా ఉపయోగకరంగా రుజువు చేసే వేరియబుల్స్. 56 00:03:13,170 --> 00:03:18,400 ఇది biSizeImage, ఉంది బైట్లు లో చిత్రం యొక్క మొత్తం పరిమాణం. 57 00:03:18,400 --> 00:03:20,890 మరియు ఈ పిక్సెళ్ళు మరియు పాడింగ్ కలిగి. 58 00:03:20,890 --> 00:03:24,210 పాడింగ్ చాలా ముఖ్యం, కానీ మేము తరువాత ఆ చూస్తారు. 59 00:03:24,210 --> 00:03:30,000 >> BiWidth యొక్క వెడల్పు సూచిస్తుంది పిక్సెళ్ళు మైనస్ పాడింగ్ లో చిత్రం. 60 00:03:30,000 --> 00:03:34,220 BiHeight కూడా అప్పుడు ఎత్తు పిక్సెళ్ళు లో చిత్రం యొక్క. 61 00:03:34,220 --> 00:03:38,240 ఆపై BITMAPFILEHEADER మరియు నేను పేర్కొన్న BITMAPINFOHEADER, 62 00:03:38,240 --> 00:03:40,900 ముందు, ఆ సూచించబడతాయి structs వంటి. 63 00:03:40,900 --> 00:03:45,410 కాబట్టి, మీరు ఫైల్ శీర్షిక యాక్సెస్ చేయలేరు కూడా, కానీ మీరు ను చెయ్యవచ్చును 64 00:03:45,410 --> 00:03:47,370 లోపల ఆ వేరియబుల్స్. 65 00:03:47,370 --> 00:03:48,170 >> OK. 66 00:03:48,170 --> 00:03:50,600 కాబట్టి మేము ఎలా శీర్షిక అప్డేట్ చెయ్యాలి? 67 00:03:50,600 --> 00:03:54,020 ముందుగల మేము చూడటానికి మేము అని నుండి ఏ సమాచారం మార్చడానికి అవసరం 68 00:03:54,020 --> 00:03:58,480 కు infile, అవగాహనా, outfile, తీర్పు. 69 00:03:58,480 --> 00:04:00,250 ఏదైనా ఈ విషయంలో మారుతున్న? 70 00:04:00,250 --> 00:04:04,320 Well, వాస్తవానికి, మేము వెళుతున్న ఎందుకంటే కేవలం రంగులు మారుతున్న. 71 00:04:04,320 --> 00:04:07,550 మేము ఫైలు మార్పులు అన్నారు లేదు పరిమాణం, చిత్రం పరిమాణం, వెడల్పు, 72 00:04:07,550 --> 00:04:08,310 లేదా ఎత్తు. 73 00:04:08,310 --> 00:04:14,010 కాబట్టి మీరు ఇప్పుడు కోసం అన్ని ఉన్నాము కేవలం ప్రతి పిక్సెల్ కాపీ. 74 00:04:14,010 --> 00:04:14,840 >> OK. 75 00:04:14,840 --> 00:04:20,720 కాబట్టి ఇప్పుడు యొక్క ఎలా మేము నిజంగా చూద్దాం ఫైలు నుండి ప్రతి పిక్సెల్ చదువుకోవచ్చు. 76 00:04:20,720 --> 00:04:23,640 మరో ఫైలు I / O ఫంక్షన్ తెరపైకి వస్తాయి - 77 00:04:23,640 --> 00:04:24,700 fread. 78 00:04:24,700 --> 00:04:28,440 ఇది struct ఒక పాయింటర్ లో పడుతుంది ఆ బైట్లు కలిగిన 79 00:04:28,440 --> 00:04:30,110 మీరు చదువుతున్న. 80 00:04:30,110 --> 00:04:31,890 కాబట్టి మీరు ఆ లోకి చదువుతున్న. 81 00:04:31,890 --> 00:04:36,090 ఆపై మీరు ఇది, ఒక పరిమాణం పాస్ ప్రతి మూలకం యొక్క పరిమాణం మీరు 82 00:04:36,090 --> 00:04:37,360 చదవాలనుకుంటున్న. 83 00:04:37,360 --> 00:04:40,640 ఇక్కడ, ఫంక్షన్ sizeof ఉపయోగపడుట ఉంటుంది. 84 00:04:40,640 --> 00:04:45,570 అప్పుడు మీరు, అనేక పాస్ ఇది అంశాల సంఖ్య సూచిస్తుంది 85 00:04:45,570 --> 00:04:47,480 చదవడానికి పరిమాణం. 86 00:04:47,480 --> 00:04:51,180 మరియు తర్వాత చివరకు, inptr, ఇది మీరు ఫైల్ పాయింటర్ 87 00:04:51,180 --> 00:04:52,530 నుండి చదవగల. 88 00:04:52,530 --> 00:04:58,650 కాబట్టి ఆ అంశాల అన్ని దానిలోపల inptr మరియు వారు డేటా చూడాలని. 89 00:04:58,650 --> 00:05:01,660 >> యొక్క ఒక చిన్న ఉదాహరణ చూద్దాం. 90 00:05:01,660 --> 00:05:07,590 నేను డేటా రెండు కుక్కలు లోకి చదవాలనుకుంటున్న ఉంటే, బాగా, నేను రెండు మార్గాల్లో ఒక చేయవచ్చు. 91 00:05:07,590 --> 00:05:15,250 నేను గాని పరిమాణం రెండు వస్తువులు లో చదువుకోవచ్చు నా inptr నుండి కుక్క, లేదా నేను చదువుకోవచ్చు 92 00:05:15,250 --> 00:05:19,280 ఒక రెండు కుక్కలు యొక్క పరిమాణం అభ్యంతరం. 93 00:05:19,280 --> 00:05:23,580 కాబట్టి మీరు చూసే విధంగా బట్టి మీరు, మీరు పరిమాణం మరియు సంఖ్య ఏర్పాట్లు 94 00:05:23,580 --> 00:05:25,840 బైట్లు అదే నెంబర్ లో చదువుకోవచ్చు. 95 00:05:25,840 --> 00:05:28,720 96 00:05:28,720 --> 00:05:33,020 >> కాబట్టి ఇప్పుడు, యొక్క మార్చడానికి వీలు మేము అవసరం పిక్సెల్ రంగు. 97 00:05:33,020 --> 00:05:37,320 మీరు మళ్ళీ bmp.h చూడండి, అప్పుడు మీరు క్రింద చూస్తారు 98 00:05:37,320 --> 00:05:42,920 RGBTRIPLEs, మరొక struct ఎక్కడ వారు మూడు బైట్లు కలిగి ఉంటాయి. 99 00:05:42,920 --> 00:05:49,220 ఒక, rgbtBlue, rgbtGreen మరియు rgbtRed. 100 00:05:49,220 --> 00:05:52,480 కాబట్టి ఈ ప్రతి మొత్తం సూచిస్తుంది నీలం, ఆకుపచ్చ మొత్తం, మరియు 101 00:05:52,480 --> 00:05:57,250 ఈ పిక్సెల్ లోపల ఎరుపు, మొత్తం పేరు ప్రతి మొత్తం ఒక సూచించబడుతుంది 102 00:05:57,250 --> 00:05:58,670 హెక్సాడెసిమల్ సంఖ్య. 103 00:05:58,670 --> 00:06:04,370 >> కాబట్టి ff0000 ఒక నీలం రంగు ఉంటుంది, అది నీలం నుండి వెళుతుంది, ఎందుకంటే 104 00:06:04,370 --> 00:06:05,850 ఎరుపు, ఆకుపచ్చ. 105 00:06:05,850 --> 00:06:09,300 ఆపై అన్ని f యొక్క తెలుపు ఉంటుంది. 106 00:06:09,300 --> 00:06:13,440 యొక్క smiley.bmp పరిశీలించి, తీసుకుందాం ఇది మీరు మీ పంపిణీ కోడ్ కలిగి. 107 00:06:13,440 --> 00:06:15,690 మీరు ఒక చిత్రం లో తెరిస్తే వీక్షకుడే మీరు చేస్తాము 108 00:06:15,690 --> 00:06:17,080 కేవలం ఒక ఎరుపు స్మైలీ చూడండి. 109 00:06:17,080 --> 00:06:20,380 కానీ మేము చేస్తాము, ఒక లోతైన డైవ్ తీసుకొని చూసే నిర్మాణం 110 00:06:20,380 --> 00:06:22,340 అది కేవలం పిక్సెల్స్. 111 00:06:22,340 --> 00:06:25,880 మేము వైట్ పిక్సెళ్ళు కలిగి, ఆపై Red పిక్సెళ్ళు. 112 00:06:25,880 --> 00:06:31,000 అన్ని ఆపై, తెలుపు ffffff, మరియు నేను మీరు కోసం రంగు చేసిన Red పిక్సెళ్ళు 113 00:06:31,000 --> 00:06:35,440 ఇక్కడ, మరియు వారు 0000ff అని చూడండి. 114 00:06:35,440 --> 00:06:39,760 జీరో నీలం, సున్నా ఆకుపచ్చ, మరియు పూర్తి ఎరుపు. 115 00:06:39,760 --> 00:06:45,350 మరియు స్మైలీ ఎనిమిది పిక్సెల్స్ వెడల్పు ఎందుకంటే, మేము ఏ పాడింగ్ లేదు. 116 00:06:45,350 --> 00:06:47,360 అన్ని కుడి. 117 00:06:47,360 --> 00:06:53,310 >> నేను వివిధ విలువలు కేటాయించి కాబట్టి ఉంటే ఒక RGBTRIPLE మరియు భాగ్యలక్ష్మీ 118 00:06:53,310 --> 00:06:58,350 ఇది ఆకుపచ్చ చేయడానికి, అప్పుడు నా చేస్తుంది ఉంది నేను అనే ఒక RGBTRIPLE, డిక్లేర్ 119 00:06:58,350 --> 00:07:02,660 ట్రిపుల్, ఆపై ప్రతి యాక్సెస్ ఆ struct నేను లోపల బైట్ 120 00:07:02,660 --> 00:07:04,030 డాట్ ఆపరేటర్లు ఉపయోగించే. 121 00:07:04,030 --> 00:07:08,430 కాబట్టి triple.rgbtBlue, నేను 0 ఆ కేటాయించి. 122 00:07:08,430 --> 00:07:13,460 గ్రీన్ నేను పూర్తి దానిని కేటాయించవచ్చు - ఏ సంఖ్య, నిజంగా, 0 మరియు ff మధ్య. 123 00:07:13,460 --> 00:07:15,470 మరియు ఎరుపు, నేను కూడా 0 చెప్పడానికి వెళుతున్నాను. 124 00:07:15,470 --> 00:07:19,160 కాబట్టి ఆ నాకు ఒక ఆకుపచ్చ పిక్సెల్ ఇస్తుంది. 125 00:07:19,160 --> 00:07:23,030 >> తదుపరి, నేను తనిఖీ ఏమి ఉంటే ఏదో విలువ? 126 00:07:23,030 --> 00:07:27,250 నేను వెతుకుతుంది ఏదైనా కలిగి కాలేదు ట్రిపుల్ యొక్క rgbtBlue విలువ అనే 127 00:07:27,250 --> 00:07:31,080 ff ఆపై ముద్రణ, "నేను ఫీలింగ్ నీలం! ", ఫలితంగా. 128 00:07:31,080 --> 00:07:35,640 ఇప్పుడు, ఆ అవసరం కాదు పిక్సెల్ కుడి, నీలం? 129 00:07:35,640 --> 00:07:40,060 పిక్సెల్ యొక్క ఆకుపచ్చ మరియు ఎరుపు విలువలు ఎందుకంటే కూడా కాని 0 విలువలు కలిగి. 130 00:07:40,060 --> 00:07:43,470 అంటే అన్ని, మరియు అన్ని ఈ తనిఖీ ఉంది 131 00:07:43,470 --> 00:07:45,610 ఒక పూర్తి నీలం రంగు కోసం. 132 00:07:45,610 --> 00:07:50,050 కానీ అన్ని పిక్సెళ్ళు కూడా పాక్షిక కలిగి ఈ వంటి రంగు విలువలు, 133 00:07:50,050 --> 00:07:52,180 ఇక్కడ తదుపరి ఉదాహరణకు. 134 00:07:52,180 --> 00:07:55,400 >> ఇది ఒక చిన్న కష్టం చూడటానికి ఉంది ఈ చిత్రం ఇప్పుడు. 135 00:07:55,400 --> 00:08:00,320 ఈ కొద్దిగా ఎక్కువ కనిపిస్తోంది మీరు ఇవ్వబడుతుంది మేము ఆ clue.bmp. 136 00:08:00,320 --> 00:08:03,600 ఇప్పుడు, భౌతికంగా, మీరు ఈ పరిష్కరించడానికి ఉండవచ్చు, ద్వారా, ఎరుపు చాలా ఉంది ఎందుకంటే 137 00:08:03,600 --> 00:08:07,040 చిత్రం ఒక ఎరుపు స్క్రీన్ అప్ పట్టుకొని కాబట్టి ఇతర రంగులు కనిపిస్తాయి. 138 00:08:07,040 --> 00:08:10,968 కాబట్టి మేము ఎలా సి ఈ అనుకరిస్తూ? 139 00:08:10,968 --> 00:08:15,640 Well, మేము అన్ని ఎరుపు తొలగించడానికి ఉండవచ్చు చిత్రం పూర్తిగా. 140 00:08:15,640 --> 00:08:21,870 కాబట్టి మేము ప్రతి సెట్ భావిస్తున్న అలా 0 పిక్సెల్ యొక్క ఎరుపు విలువ. 141 00:08:21,870 --> 00:08:25,020 కాబట్టి చిత్రం కొద్దిగా చూస్తారు మేము ఏ ఎరుపు ఉంటుంది ఈ వంటి బిట్ 142 00:08:25,020 --> 00:08:26,300 లేనే. 143 00:08:26,300 --> 00:08:29,390 >> రహస్య సందేశాన్ని ఒక చూడగలరు కొద్దిగా ఎక్కువ స్పష్టంగా ఇప్పుడు. 144 00:08:29,390 --> 00:08:31,730 ఇది మరొక స్మైలీ ముఖం ఉంది. 145 00:08:31,730 --> 00:08:33,870 మనం మరొక పద్ధతి ఉపయోగించవచ్చు. 146 00:08:33,870 --> 00:08:36,480 బహుశా, మేము గుర్తించడానికి ఎరుపు పిక్సెళ్ళు అన్ని - 147 00:08:36,480 --> 00:08:41,100 ఆ, పిక్సెళ్ళు అన్ని తో ఉంది 0 నీలం, 0 ఆకుపచ్చ, మరియు 0 ఎరుపు - 148 00:08:41,100 --> 00:08:43,169 మరియు తెలుపు ఆ మార్చడానికి. 149 00:08:43,169 --> 00:08:45,470 మరియు మా చిత్రాన్ని చూడండి ఉండవచ్చు ఈ వంటి ఏదో. 150 00:08:45,470 --> 00:08:48,250 చూడటానికి కొద్దిగా సులభం. 151 00:08:48,250 --> 00:08:51,170 >> వెలికితీసే ఇతర మార్గాలు ఉన్నాయి రహస్య సందేశాన్ని అలాగే, 152 00:08:51,170 --> 00:08:53,730 రంగు తారుమారు వ్యవహరించే. 153 00:08:53,730 --> 00:08:57,050 బహుశా మీరు పద్ధతులు ఒకటి ఉపయోగించుకునే నేను పైన పేర్కొన్న ఆ. 154 00:08:57,050 --> 00:08:59,600 మరియు అదనంగా, మీరు అనుకోవచ్చు కొన్ని రంగులు విస్తరించేందుకు 155 00:08:59,600 --> 00:09:02,620 మరియు ఆ ఆవిష్కరించాయి. 156 00:09:02,620 --> 00:09:06,190 >> కాబట్టి ఇప్పుడు మేము పిక్సెల్ మార్పుచేసేరని రంగు, తదుపరి మేము వాటిని రాయడానికి అవసరం 157 00:09:06,190 --> 00:09:08,500 పిక్సెల్ ద్వారా scanline లో, పిక్సెల్. 158 00:09:08,500 --> 00:09:11,860 మళ్ళీ, మీరు తిరిగి చూడండి చెయ్యవచ్చును మీరు కాపీ ఉండకపోతే, copy.c కు 159 00:09:11,860 --> 00:09:18,170 ఇది ఇప్పటికే, మరియు fwrite చూడండి డేటా పడుతుంది కార్యక్రమం, ఒక పాయింటర్ 160 00:09:18,170 --> 00:09:23,230 బైట్లు కలిగి struct కు మీరు పరిమాణం, చదవడం చేస్తున్న 161 00:09:23,230 --> 00:09:26,610 అంశాలను, అంశాల సంఖ్య, ఆపై outptr - 162 00:09:26,610 --> 00:09:29,450 ఆ ఫైళ్ళను గమ్యం. 163 00:09:29,450 --> 00:09:34,010 >> మీరు పిక్సెళ్ళు లో రాసిన తరువాత, మీరు కూడా పాడింగ్ లో రాయడానికి ఉన్నాయి. 164 00:09:34,010 --> 00:09:34,970 పాడింగ్ ఏమిటి? 165 00:09:34,970 --> 00:09:38,670 బాగా, ప్రతి rgbt పిక్సెల్ మూడు బైట్ల పొడవు ఉంటుంది. 166 00:09:38,670 --> 00:09:43,670 కానీ, ఒక బిట్మ్యాప్ చిత్రం కోసం scanline నాలుగు బైట్లు ఒక బహుళ ఉండాలి. 167 00:09:43,670 --> 00:09:47,650 మరియు పిక్సెళ్ళు సంఖ్య లేకపోతే ఒక నాలుగు బహుళ, అప్పుడు మేము జోడించాలి 168 00:09:47,650 --> 00:09:48,880 ఈ పాడింగ్. 169 00:09:48,880 --> 00:09:51,420 పాడింగ్ 0 సె ప్రాతినిధ్యం వహిస్తుంది. 170 00:09:51,420 --> 00:09:54,380 కాబట్టి, ఎలా మేము వ్రాయండి, లేదా ఈ చదివే? 171 00:09:54,380 --> 00:09:59,280 బాగా, అది అవుతుంది మీరు కాదు అని నిజానికి fread పాడింగ్, కానీ మీరు 172 00:09:59,280 --> 00:10:00,970 ఇది లెక్కించేందుకు. 173 00:10:00,970 --> 00:10:04,400 >> ఈ సందర్భంలో, క్లూ మరియు తీర్పు అదే వెడల్పు కలిగి ఉంటాయి, కాబట్టి 174 00:10:04,400 --> 00:10:05,910 పాడింగ్ అదే ఉంది. 175 00:10:05,910 --> 00:10:09,370 మరియు పాడింగ్, మీరు చూస్తారు వంటి copy.c లో, లెక్కిస్తారు 176 00:10:09,370 --> 00:10:11,790 క్రింద ఫార్ములా - 177 00:10:11,790 --> 00:10:16,690 bi.biWidth సార్లు sizeof (RGBTRIPLE) రెడీ ఎన్ని బైట్లు bmp మాకు ఇవ్వాలని 178 00:10:16,690 --> 00:10:18,280 ప్రతి వరుసగా ఉంది. 179 00:10:18,280 --> 00:10:21,890 అక్కడ నుండి, modulos మరియు వ్యవకలనాల 4 లెక్కించవచ్చు తో ఎలా 180 00:10:21,890 --> 00:10:25,610 అనేక బైట్లు జోడించవచ్చు ఏజెన్సీలోని న బైట్లు బహుళ 181 00:10:25,610 --> 00:10:27,250 ప్రతి వరుస నాలుగు ఉంది. 182 00:10:27,250 --> 00:10:30,490 >> ఇప్పుడు మేము కోసం ఫార్ములా కలిగి మేము ఎంత padding, ఇప్పుడు 183 00:10:30,490 --> 00:10:31,610 మేము అది రాయడం. 184 00:10:31,610 --> 00:10:34,080 ఇప్పుడు, నేను ముందు చెప్పినట్లుగా, పాడింగ్ 0 సె ఉంది. 185 00:10:34,080 --> 00:10:39,730 కాబట్టి ఆ సందర్భంలో, మేము చూస్తూ ఈ సందర్భంలో ఒక 0 చార్, మా 186 00:10:39,730 --> 00:10:41,710 outptr - మా outfile. 187 00:10:41,710 --> 00:10:47,530 అందువలన fputc ఉంటుంది 0, కామా outptr. 188 00:10:47,530 --> 00:10:52,400 >> కాబట్టి, మేము లోకి చదువుతున్నాను అయితే మా ఫైలు, ఫైలు I / O యొక్క ట్రాక్ ఉంచింది మా 189 00:10:52,400 --> 00:10:57,440 ఏదో ఆ ఫైళ్ళను లో స్థానం ఫైలు స్థానం సూచిక అని. 190 00:10:57,440 --> 00:10:59,350 ఒక కర్సర్ గా భావిస్తారు. 191 00:10:59,350 --> 00:11:03,550 సాధారణంగా, ఇది ప్రతి సమయం అభివృద్ధి మేము fread, కానీ మేము కలిగి 192 00:11:03,550 --> 00:11:05,671 చాలా, దాని పై నియంత్రణ. 193 00:11:05,671 --> 00:11:11,030 >> ఫైలు స్థానం సూచిక తరలించడానికి, మీరు ఫంక్షన్ fseek ఉపయోగించవచ్చు. 194 00:11:11,030 --> 00:11:15,600 Inptr ఫైలు సూచిస్తుంది పేరు మీరు కోరుతూ చేస్తున్న పాయింటర్, 195 00:11:15,600 --> 00:11:20,370 మొత్తం బైట్లు సంఖ్య అని మీరు నుండి అప్పుడు కర్సర్ తరలించడానికి మరియు కావలసిన 196 00:11:20,370 --> 00:11:23,470 సూచనగా సంబంధించినది మీ కర్సర్ ఎక్కడ నుండి. 197 00:11:23,470 --> 00:11:26,770 మీరు SEEK_CUR లో పాస్, అని ప్రస్తుత సూచిస్తుంది 198 00:11:26,770 --> 00:11:28,100 ఫైలు లో స్థానం. 199 00:11:28,100 --> 00:11:31,020 లేదా మీరు కొన్ని ఇతర పారామితులు ఉపయోగించవచ్చు. 200 00:11:31,020 --> 00:11:35,400 కాబట్టి, మేము దాటవేయడానికి fseek ఉపయోగించడానికి ఉంటుంది లో ఫైలు యొక్క padding పైగా. 201 00:11:35,400 --> 00:11:39,410 మీకు కష్టం మీరు మళ్ళీ, ఉంది copy.c. లో ఆ ఒక ఉదాహరణ 202 00:11:39,410 --> 00:11:43,260 >> కాబట్టి ఇప్పుడు మేము ఫైల్ తెరిచిన, క్లూ మరియు తీర్పును. 203 00:11:43,260 --> 00:11:46,450 మేము కోసం శీర్షిక నవీకరించబడింది చేసిన మా తీర్పు, ఎందుకంటే ప్రతి 204 00:11:46,450 --> 00:11:48,730 బిట్మ్యాప్ ఒక శీర్షిక అవసరం. 205 00:11:48,730 --> 00:11:52,280 మేము అప్పుడు క్లూ యొక్క లోకి చదివారు scanline, పిక్సెల్ ద్వారా పిక్సెల్, మారుతున్న 206 00:11:52,280 --> 00:11:55,210 ప్రతి రంగు అవసరం, మరియు లోకి ఆ రచన 207 00:11:55,210 --> 00:11:57,340 తీర్పు, పిక్సెల్ ద్వారా పిక్సెల్. 208 00:11:57,340 --> 00:12:01,550 మీరు తీర్పు తెరవడానికి, మీరు చూడగలరు ఎవరు అపరాధి, లేదా ఏ రహస్య 209 00:12:01,550 --> 00:12:02,850 సందేశం. 210 00:12:02,850 --> 00:12:05,550 నా పేరు Zamyla, మరియు ఈ హూడన్ఇట్ ఉంది. 211 00:12:05,550 --> 00:12:12,864