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 >> તેથી ફરી, તમારું પ્રથમ પગલું કદાચ કદાચ સી.પી., 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 અને તેથી તે રહેલ છે સ્ટ્ર્ક્ટ્સ 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 સ્ટ્રક્ટ અને જોઈ ચલો ત્યાં યાદી થયેલ છે, જે. 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 ફરીથી, અમે અમારા વિશ્વાસુ માટે ચાલુ રહ્યા છીએ I / O લાઇબ્રેરી ફાઇલ, અને જુઓ 59 00:03:20,210 --> 00:03:22,100 પાંચ fread કાર્ય કરે છે. 60 00:03:22,100 --> 00:03:26,150 fread સ્ટ્રક્ટ માટે નિર્દેશક લે કે બાઇટ્સ સમાવે છે 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 કાર્ય હોય છે, તેથી અમે સ્ટ્રક્ટ માટે નિર્દેશક ભર્યું છે 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