1 00:00:00,000 --> 00:00:10,210 >> [இசை கேட்கிறது] 2 00:00:10,210 --> 00:00:13,320 >> ZAMYLA சான்: நாம் அடியாக மறுஅளவீடு விஷயங்களை. 3 00:00:13,320 --> 00:00:17,710 மறுஅளவீடு, பயனர் வழியாக, கடக்கும் கட்டளை வரி, ஒரு பிட்மா படம் என்று 4 00:00:17,710 --> 00:00:21,860 அவர்கள் உங்களுக்கு பல அளவிட வேண்டும் அவர்கள், கடந்து அந்த 5 00:00:21,860 --> 00:00:23,770 கட்டளை வரியில். 6 00:00:23,770 --> 00:00:24,690 இதை நாம் எப்படி செய்ய வேண்டும்? 7 00:00:24,690 --> 00:00:28,270 >> சரி, முதல் முதல் விஷயங்கள், நாம் தான் படிகள் இந்த உடைந்து. 8 00:00:28,270 --> 00:00:31,510 நீங்கள் infile திறக்க வேண்டும் போகிறோம் அவர்கள் உங்களுக்கு கொடுக்கிறார்கள், அதே போல் அந்த 9 00:00:31,510 --> 00:00:35,560 உருவாக்க மற்றும் outfile திறக்க நீங்கள் வைக்க போகிறோம் 10 00:00:35,560 --> 00:00:38,020 உள்ளே அளவு படத்தை 11 00:00:38,020 --> 00:00:42,050 பின்னர், நீங்கள் பெரிதாக்க, மற்றும் ஏனெனில் அது ஒரு பிட்மாப் ஏனெனில், அது ஒரு தலைப்பு, அதனால் 12 00:00:42,050 --> 00:00:46,080 நீங்கள் தலைப்பு மேம்படுத்த போகிறோம் outfile செய்ய தகவல், 13 00:00:46,080 --> 00:00:47,950 மற்றும் உள்ளே என்று எழுத 14 00:00:47,950 --> 00:00:51,850 பின்னர், நீங்கள் ஒரு படிக்க போகிறோம் infile என்ற scanline, 15 00:00:51,850 --> 00:00:56,890 பிக்சல் மூலம் பிக்சல், கிடைமட்டமாக பெரிதாக்க மற்றும் அந்த பிக்சல்கள் எழுதி 16 00:00:56,890 --> 00:01:00,910 outfile செய்ய, குறிப்பிட்ட பயனர் அளவு. 17 00:01:00,910 --> 00:01:03,940 >> நீங்கள் நினைவில் கொள்ள போகிறோம் தேவையான திணிப்பு சேர்க்க. 18 00:01:03,940 --> 00:01:05,400 பின்னர் மேலும். 19 00:01:05,400 --> 00:01:07,790 பின்னர், செங்குத்தாக அளவை. 20 00:01:07,790 --> 00:01:08,890 சரி. 21 00:01:08,890 --> 00:01:13,280 எனவே, இந்த ஒரு சிறிய பிட் மேலும் போகிறது இது இறைவனின் விட சிக்கலான, ஆனால் 22 00:01:13,280 --> 00:01:18,310 என்ன ஒத்த என்று copy.c செய்யும், மீண்டும், மிகவும் பயனுள்ளதாக நிரூபிக்க. 23 00:01:18,310 --> 00:01:23,160 , Copy.c ஒரு கோப்பு திறக்கும் என்று ஞாபகம் தலைப்பு தகவல் மேம்படுத்துகிறது 24 00:01:23,160 --> 00:01:28,250 outfile செய்ய, பின்னர் scanline ஒரு கூறுகிறது, பிக்சல் மூலம் பிக்சல், ஒவ்வொரு பிக்சல் எழுதி 25 00:01:28,250 --> 00:01:30,510 வெளியீடு கோப்பு scanline ஒரு. 26 00:01:30,510 --> 00:01:37,040 >> எனவே மீண்டும், உங்கள் முதல் படி ஒருவேளை வலிமை CP, copy.c, resize.c வேண்டும் 27 00:01:37,040 --> 00:01:40,560 உங்கள் PSET5 அடைவில். 28 00:01:40,560 --> 00:01:43,920 நீங்கள் அதை நகலெடுத்து முன், எனினும் நினைவில், நீங்கள் புரிந்து கொள்ள வேண்டும் என்று உறுதி செய்ய 29 00:01:43,920 --> 00:01:46,600 மிகவும் முழுமையாக copy.c. 30 00:01:46,600 --> 00:01:47,620 சரி. 31 00:01:47,620 --> 00:01:49,880 >> எனவே ஒரு கோப்பு திறந்து விடுங்கள். 32 00:01:49,880 --> 00:01:50,870 நீங்கள் அதை எப்படி செய்வது என்று எனக்கு தெரியும். 33 00:01:50,870 --> 00:01:52,600 நான் உங்களுக்கு என்று விட்டு போகிறேன். 34 00:01:52,600 --> 00:01:56,050 அடுத்து, தலைப்பு தகவல் புதுப்பிக்க outfile செய்ய. 35 00:01:56,050 --> 00:01:59,240 நாம் ஒரு புதிய படங்கள் வேண்டும், ஏனெனில், நாம் புதிய தலைப்பு தகவல் வேண்டும். 36 00:01:59,240 --> 00:02:00,970 இங்கே என்ன மாறி விட்டது? 37 00:02:00,970 --> 00:02:06,000 சரி, கோப்பின் அளவு மாற்ற போகிறது நாம் இன்னும் செய்ய போகிறோம், ஏனெனில் 38 00:02:06,000 --> 00:02:07,900 முன்பை விட படப்புள்ளிகள். 39 00:02:07,900 --> 00:02:11,060 பட அளவு மேலும், இதனால், ஆகிறது என, மாற்ற போகிறது 40 00:02:11,060 --> 00:02:13,050 அகலம் மற்றும் உயரம். 41 00:02:13,050 --> 00:02:17,180 >> எனவே இது மாறிகள் அந்த சரியாக இருக்கும்? 42 00:02:17,180 --> 00:02:20,960 சரி, நீங்கள் தலைப்பு இருக்கும் என்றால் தகவல், நீங்கள் அங்கு பார்க்க 43 00:02:20,960 --> 00:02:25,640 மொத்த பிரதிநிதித்துவப்படுத்தும் biSizeImage, பைட்டுகள் படத்தை அளவு, 44 00:02:25,640 --> 00:02:28,340 பிக்சல்கள் மற்றும் திணிப்பு உட்பட. 45 00:02:28,340 --> 00:02:32,520 biWidth படத்தை அகலம் பிக்சல்கள், திணிப்பு கழித்து. 46 00:02:32,520 --> 00:02:35,580 biHeight உயரம் ஆகிறது பிக்சல் படத்தை. 47 00:02:35,580 --> 00:02:39,200 அதனால் அந்த உள்ளன structs BITMAPFILEHEADER மற்றும் 48 00:02:39,200 --> 00:02:40,390 BITMAPINFOHEADER. 49 00:02:40,390 --> 00:02:45,300 நீங்கள் இது எந்த ஒரு சொல்ல முடியும் bmp.h சென்று பார்த்து 50 00:02:45,300 --> 00:02:49,670 BITMAPINFOHEADER struct மற்றும் பார்த்து மாறிகள், அங்கு பட்டியலிடப்பட்டுள்ளது இது. 51 00:02:49,670 --> 00:02:54,700 >> எனவே outfiles தலைப்பு புதுப்பிக்க தகவல், நீங்கள் வேண்டும் போகிறோம் 52 00:02:54,700 --> 00:02:57,025 அந்த மதிப்புகள் மாற்ற உயரம் மற்றும் அகலம். 53 00:02:57,025 --> 00:03:00,570 ஆனால் வாய்ப்புகளை நீங்கள் சில வேண்டும் infile, தலைப்பு தகவல் 54 00:03:00,570 --> 00:03:03,670 பின்னர், மிக சிறந்த இரண்டு கண்காணிப்பதற்கான. 55 00:03:03,670 --> 00:03:07,770 ஆனால் உங்கள் மாறி மிகவும் தெளிவாக இருக்க வேண்டும் பெயர்கள் என்று நீங்கள் தற்செயலாக 56 00:03:07,770 --> 00:03:12,490 தவறான மதிப்புகள் எழுத outfile செய்ய தலைப்பு. 57 00:03:12,490 --> 00:03:16,160 >> எனவே இப்போது படித்து பெற அனுமதிக்க scanline பிக்சல் மூலம் பிக்சல். 58 00:03:16,160 --> 00:03:20,210 மீண்டும், நாங்கள் எங்கள் நம்பகமானவர் திரும்ப போகிறோம் நான் / ஓ நூலகம் கோப்பு, மற்றும் பார் 59 00:03:20,210 --> 00:03:22,100 fread செயல்பாடு. 60 00:03:22,100 --> 00:03:26,150 fread ஒரு struct ஒரு சுட்டிக்காட்டி எடுக்கிறது என்று பைட்டுகள் கொண்டிருக்கும் என்று 61 00:03:26,150 --> 00:03:30,130 நீங்கள் படித்து, ஒவ்வொரு அளவு நீங்கள் படித்து என்று உறுப்பு - 62 00:03:30,130 --> 00:03:34,410 மீண்டும், sizeof பயனுள்ளதாக இருக்கும் இங்கே செயல்பாடு, எண்ணிக்கை 63 00:03:34,410 --> 00:03:38,820 நீங்கள் அந்த அளவு, அளவு கூறுகள், பின்னர் இறுதியாக படித்தல், மற்றும், 64 00:03:38,820 --> 00:03:41,310 inpointer, கோப்பு என்று நீங்கள் படித்து நீங்கள். 65 00:03:41,310 --> 00:03:46,770 எனவே நீங்கள் பல கூறுகளை எடுத்து வருகிறோம் inpointer இருந்து அளவு, மற்றும் 66 00:03:46,770 --> 00:03:49,040 தரவு அவற்றை. 67 00:03:49,040 --> 00:03:51,695 >> இப்போது அது கிடைமட்டமாக அளவை நேரம். 68 00:03:51,695 --> 00:03:56,880 N ஒவ்வொரு பிக்சல் பின்னர், 2 சமமாக இருந்தால், infile, நாம் அதை எழுத போகிறோம் 69 00:03:56,880 --> 00:04:00,870 இருமுறை outfile செய்ய வேண்டும். 70 00:04:00,870 --> 00:04:02,210 எப்படி நாம் கோப்புகளை எழுத வேண்டும்? 71 00:04:02,210 --> 00:04:06,400 சரி, நாம் fwrite செயல்பாடு, அதனால் நாம் struct என்று சுட்டிக்காட்டி வந்திருக்கிறேன் 72 00:04:06,400 --> 00:04:10,170 என்று நீங்கள் என்று பைட்டுகள் கொண்டிருக்கிறது எழுத, மற்றும் நாம் கடந்து 73 00:04:10,170 --> 00:04:14,430 அளவு, எண்ணிக்கை, மற்றும் வெளியீடு, அங்கு நீங்கள் என்று எழுத வேண்டும் போகிறோம். 74 00:04:14,430 --> 00:04:19,200 பின்னர் ஒரு செயல்முறை மீண்டும், இருக்கும் லூப் முடியும் ஒரு எளிய பங்கேற்பு. 75 00:04:19,200 --> 00:04:21,740 >> ஆனால் நாம் நினைவில் கொள்ள வேண்டும் உள்ளே திணிப்பு சேர்க்க வேண்டும் 76 00:04:21,740 --> 00:04:26,040 திணிப்பு கருத்து என்று, நன்றாக இருக்கிறது ஒவ்வொரு பிக்சல் மூன்று கடி, ஆனால் 77 00:04:26,040 --> 00:04:28,940 ஒவ்வொரு scanline வேண்டும் அளவு 4 பைட்டுகள் ஒரு பல இருக்கும். 78 00:04:28,940 --> 00:04:33,660 எனவே பிக்சல்கள் எண்ணிக்கை இல்லை என்றால் ஒரு 4 பல, நாம் சில சேர்க்க வேண்டும் 79 00:04:33,660 --> 00:04:36,630 வெறும் zeroes இது திணிப்பு,. 80 00:04:36,630 --> 00:04:42,130 இப்போது, அதை செய்ய யார் போல், போல் நகல், பின்னர், infile படம் மற்றும் 81 00:04:42,130 --> 00:04:44,370 outfile செய்ய கோப்பில் வேண்டும் வெவ்வேறு திணிப்பு அவர்கள் இருப்பதால் 82 00:04:44,370 --> 00:04:46,360 வெவ்வேறு அகலங்கள். 83 00:04:46,360 --> 00:04:46,690 >> சரி. 84 00:04:46,690 --> 00:04:51,050 எனவே ஒருவேளை ஒரு சூத்திரம் என்று இங்கே கைக்குள் வந்து. 85 00:04:51,050 --> 00:04:55,120 நான் அதை கண்டுபிடிக்க நீங்கள் அதை விட்டு, ஆனால் நான் திணிப்பு எழுத, என்று நீங்கள் சொல்ல, 86 00:04:55,120 --> 00:04:59,360 சரி, அது ஒரு எளிய fputc விழா, பாத்திரம் கடந்து செல்லும் 87 00:04:59,360 --> 00:05:02,200 நீங்கள் எழுத வேண்டும், என்று கோப்பு சுட்டிக்காட்டி என்று நீங்கள் 88 00:05:02,200 --> 00:05:04,280 எழுத வேண்டும். 89 00:05:04,280 --> 00:05:08,670 எனவே இப்போது நாம், கிடைமட்டமாக அளவு என்று பின்னர், திணிப்பு பயன்படுத்தப்படும் 90 00:05:08,670 --> 00:05:12,030 உங்கள் கோப்பு நகர்த்த வேண்டும் என்று நினைவில் நிலை காட்டி, நீங்கள் 91 00:05:12,030 --> 00:05:14,480 திணிப்பு fread முடியாது. 92 00:05:14,480 --> 00:05:18,230 எனவே நீங்கள் உறுதி செய்ய வேண்டும் உங்கள் கோப்பு infile நிலை காட்டி 93 00:05:18,230 --> 00:05:19,980 சரியான நேரத்தில் ஆகிறது. 94 00:05:19,980 --> 00:05:23,970 நாங்கள் விரும்பவில்லை, ஏனென்றால் செங்குத்தாக அளவை. 95 00:05:23,970 --> 00:05:27,090 நாம் தான், கிடைமட்டமாக அதை நீட்டி முடியாது ஒவ்வொரு வரிசையில் வேண்டும், ஏனெனில் 96 00:05:27,090 --> 00:05:30,370 n முறை நகலெடுக்க வேண்டும். 97 00:05:30,370 --> 00:05:33,050 >> இப்போது, வேறு பல உள்ளன இதை செய்ய வழிகள். 98 00:05:33,050 --> 00:05:39,010 எனவே, நாம், ஒரு மாற்றியமைத்தன முறையை பயன்படுத்தலாம் நாம் பிக்சல்கள் அனைத்து நினைவில் 99 00:05:39,010 --> 00:05:42,840 ஒரு குறிப்பிட்ட ஒரு வரிசையில் வரிசையில், நாம் அந்த வரிசையில் எழுத 100 00:05:42,840 --> 00:05:44,730 பல முறை தேவை. 101 00:05:44,730 --> 00:05:49,530 அல்லது அங்கு recopy முறை உள்ளது, infile ஒரு வரிசையில் படித்த பிறகு 102 00:05:49,530 --> 00:05:53,530 பின்னர் outfile கொண்டு என்று எழுதி, திணிப்பு சேர்த்து, நாங்கள் fseek 103 00:05:53,530 --> 00:05:57,250 அசல் வரிசையில் தொடக்கத்தில் மீண்டும், பின்னர் கிடைமட்ட மீண்டும் 104 00:05:57,250 --> 00:05:58,710 அங்கு இருந்து பெரிதாக்க வேண்டும். 105 00:05:58,710 --> 00:06:02,280 எந்த முறை, எனினும், நீங்கள் ஒவ்வொரு பிக்சல் மீண்டும் வேண்டும் 106 00:06:02,280 --> 00:06:06,370 n முறை, மற்றும் ஒவ்வொரு வரிசையில் இருக்க வேண்டும் அதே N முறை திரும்ப திரும்ப. 107 00:06:06,370 --> 00:06:09,160 >> என்று, நீங்கள் பிட்மாப் வேண்டும் வாழ்க்கையை விட பெரிய. 108 00:06:09,160 --> 00:06:11,760 என் பெயர் Zamyla உள்ளது, மற்றும் இந்த CS50 உள்ளது. 109 00:06:11,760 --> 00:06:19,542