1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [Музички] 3 00:00:13,350 --> 00:00:14,080 >> Роб BOWDEN: Здраво. 4 00:00:14,080 --> 00:00:17,550 Јас сум Роб, и да се надеваме дека ова решение им помага ви стават 5 00:00:17,550 --> 00:00:19,600 на патот кон закрепнување. 6 00:00:19,600 --> 00:00:22,700 Па ајде да започнете. 7 00:00:22,700 --> 00:00:25,660 >> Можеме да видиме дека веднаш ние сме само за да бидете сигурни дека ние сме 8 00:00:25,660 --> 00:00:27,170 користејќи реставрирана правилно. 9 00:00:27,170 --> 00:00:31,490 Значи употребата само треба да биде нешто како dot коса црта опорави. 10 00:00:31,490 --> 00:00:35,500 >> Сега ние ќе треба да се отвори очекува картичка точка суровини датотека. 11 00:00:35,500 --> 00:00:39,740 Гледаме тука дека ние сме со користење на постојана суровини црта името на датотеката, 12 00:00:39,740 --> 00:00:44,200 кои до тука имаме хаш дефинира како картичка точка суровини. 13 00:00:44,200 --> 00:00:45,030 OK. 14 00:00:45,030 --> 00:00:48,210 >> Значи ние треба да бидете сигурни дека успешно отворен, бидејќи ако тоа 15 00:00:48,210 --> 00:00:51,150 не, тогаш треба да го предупреди корисникот. 16 00:00:51,150 --> 00:00:56,770 Но претпоставувајќи дека тоа го правеше, ние сме сега ќе се изјасни тампон на големината на JPEG 17 00:00:56,770 --> 00:00:58,170 името на датотеката должина. 18 00:00:58,170 --> 00:01:02,060 Па ова ќе биде тампон дека ние ќе sprintf во. 19 00:01:02,060 --> 00:01:04,360 >> Значи она што е JPEG име на датотека должина? 20 00:01:04,360 --> 00:01:08,490 Тука, можеме да видиме дека тоа е хаш се дефинира како осум. 21 00:01:08,490 --> 00:01:10,670 Па зошто осум? 22 00:01:10,670 --> 00:01:15,150 Па дадена датотека ќе биде именувана нешто како нула нула нула. 23 00:01:15,150 --> 00:01:19,460 JPG и тогаш ние треба обратна коса црта нула. 24 00:01:19,460 --> 00:01:22,720 Значи ние треба тампон кој може чувајте осум карактери. 25 00:01:22,720 --> 00:01:25,190 Сега ние ќе треба да имаат контра тоа е ќе ги пратите на 26 00:01:25,190 --> 00:01:27,780 број JPEG слики најдовме. 27 00:01:27,780 --> 00:01:31,590 >> И, конечно, ние ќе треба да имаат JPEG датотека која е првично нула 28 00:01:31,590 --> 00:01:35,920 кој ќе биде моментално да ја отворам датотеката, дека ние сме пишување да. 29 00:01:35,920 --> 00:01:37,540 Сега ние ќе треба да имаат дополнителни пуфер. 30 00:01:37,540 --> 00:01:41,350 Ова не е иста како и нашите sprintf тампон каде што оваа тампон е оној 31 00:01:41,350 --> 00:01:45,020 дека ние сме читање на податоци од картичката точка суровини. 32 00:01:45,020 --> 00:01:48,900 >> Па тампон ќе биде на непотпишана карактери, кој можете да 33 00:01:48,900 --> 00:01:53,560 во основа, само се однесуваат кон нас бајти, а тоа е ќе биде на големината блок големина 34 00:01:53,560 --> 00:01:57,950 каде што, како што ви кажам, блок големина е 512. 35 00:01:57,950 --> 00:02:03,070 Па JPEG слики можете да се третираат што е како блокови од 512 бајти. 36 00:02:03,070 --> 00:02:05,890 >> Сега ние ќе јамка во текот на целата датотека. 37 00:02:05,890 --> 00:02:12,980 Ние ќе ѓ прочита во нашите тампон еден бајт големина на блокови пати од 38 00:02:12,980 --> 00:02:14,710 картичката точка суровини датотека. 39 00:02:14,710 --> 00:02:16,630 Сега што е ѓ прочитате врати? 40 00:02:16,630 --> 00:02:20,050 Го враќа бројот на предмети дека успешно ја прочитате. 41 00:02:20,050 --> 00:02:27,310 Значи, ако тоа успеа да го прочитате 512 бајти, тогаш ние сакаме да видиме дали ова беше 42 00:02:27,310 --> 00:02:29,700 JPEG или напишете го на JPEG датотеки. 43 00:02:29,700 --> 00:02:34,450 И ако тоа не се врати 512 бајти, тогаш или на датотеката заврши во 44 00:02:34,450 --> 00:02:37,870 кој случај ние ќе се пробие на y јамка, или постојат некој вид на грешка 45 00:02:37,870 --> 00:02:40,300 во кој случај ние исто така ќе се пробие на на y јамка, но ние ќе сакате да го пријавите 46 00:02:40,300 --> 00:02:41,990 дека нешто тргнало наопаку. 47 00:02:41,990 --> 00:02:42,290 >> OK. 48 00:02:42,290 --> 00:02:47,630 Значи под претпоставка дека ние успешно се прочита во 512 бајти, ние сакаме да прво проверете 49 00:02:47,630 --> 00:02:53,070 да се направи дека овие бајти кои ние само да читате во почнат JPEG. 50 00:02:53,070 --> 00:02:56,430 Па ако е JPEG насловот на нашата тампон. 51 00:02:56,430 --> 00:02:58,460 Сега што е JPEG насловот правиш? 52 00:02:58,460 --> 00:03:00,120 Да ги погледнеме. 53 00:03:00,120 --> 00:03:05,270 >> Тука, можеме да видиме дека оваа функција е враќање бик, а тоа Бул - 54 00:03:05,270 --> 00:03:08,820 и тука, ние сме проверка за да види дали насловот нула еднаква оваа постојана и 55 00:03:08,820 --> 00:03:11,880 насловот еден е еднакво на оваа постојана и насловот две еднаква оваа постојана, 56 00:03:11,880 --> 00:03:15,640 насловот три еднаква на ова или ова постојана каде што сите овие константи се 57 00:03:15,640 --> 00:03:20,340 само хаш дефинирани токму тука и се токму она што ви реков во спецификации 58 00:03:20,340 --> 00:03:22,700 дека JPEG започнува со. 59 00:03:22,700 --> 00:03:27,300 И така оваа функција е само ќе врати вистина ако ова тампон претставува 60 00:03:27,300 --> 00:03:31,750 на почеток на нова JPEG и false. 61 00:03:31,750 --> 00:03:32,520 >> OK. 62 00:03:32,520 --> 00:03:38,490 Така да ако ова не претставува нова JPEG, тогаш ние прво сакате да се провери да се види дали 63 00:03:38,490 --> 00:03:42,030 JPEG датотека не е еднаква на нула, во кој случај ние го затворите. 64 00:03:42,030 --> 00:03:44,940 И така зошто не ни треба да се провери да се види дали тоа не е нула? 65 00:03:44,940 --> 00:03:48,980 И првиот JPEG дека ние најдете ние веќе не ќе има 66 00:03:48,980 --> 00:03:50,440 отворен JPEG датотека. 67 00:03:50,440 --> 00:03:55,580 И така, ако се обидеме да го затвори тоа, тогаш ние не правиш нешто сосема во право. 68 00:03:55,580 --> 00:03:59,090 >> Но секое последователно JPEG дека ќе ги отвориме, ние сакаме да се затвори 69 00:03:59,090 --> 00:04:00,710 претходниот фајл. 70 00:04:00,710 --> 00:04:04,630 Па сега ние ќе треба да се користи sprintf како што рече пред каде што ние сме со користење на 71 00:04:04,630 --> 00:04:06,280 тампон JPEG името на датотеката. 72 00:04:06,280 --> 00:04:09,870 И ние ќе го користите JPEG датотека Формат на име како наш формат. 73 00:04:09,870 --> 00:04:12,030 И што е тоа? 74 00:04:12,030 --> 00:04:18,450 Тука, можеме да видиме дека тоа е нула проценти 3D.JPEG каде нула три само 75 00:04:18,450 --> 00:04:22,089 вели дека ќе користи три цели броеви за овој ватирани со нули. 76 00:04:22,089 --> 00:04:27,470 Значи ова е како ние ќе добиете нула нула one.JPEG и нула 10.JPEG и така натаму. 77 00:04:27,470 --> 00:04:29,060 >> Ние ќе се користат sprintf. 78 00:04:29,060 --> 00:04:33,760 И број, дека ние сме вметнување во низа е вцепенен JPEG слики 79 00:04:33,760 --> 00:04:36,380 обнови, кое е првично нула. 80 00:04:36,380 --> 00:04:39,950 Значи првиот фајл отвори се случува да биде нула нула нула точка JPEG. 81 00:04:39,950 --> 00:04:43,330 А потоа ние сме го зголемува бројката па следен фајл ќе ги отвориме ќе биде нула нула 82 00:04:43,330 --> 00:04:46,830 една точка JPEG и ние ќе го прираст повторно, па тоа ќе биде нула нула две точки 83 00:04:46,830 --> 00:04:49,100 JPEG и така натаму. 84 00:04:49,100 --> 00:04:49,850 >> Во ред е. 85 00:04:49,850 --> 00:04:53,210 Па сега внатрешноста на JPEG датотека име, имаме името на 86 00:04:53,210 --> 00:04:54,990 поднесе дека сакаме. 87 00:04:54,990 --> 00:04:58,640 Ние можеме да ѓ отвори таа датотека за пишување. 88 00:04:58,640 --> 00:04:59,170 OK. 89 00:04:59,170 --> 00:05:02,820 И уште еднаш, ние треба да се провери да се направи сигурни дека датотеката е успешно 90 00:05:02,820 --> 00:05:08,460 отворен уште ако не, тогаш имаше некои грешка. 91 00:05:08,460 --> 00:05:13,100 >> Па сега сме добиле минатото е ова е JPEG дел. 92 00:05:13,100 --> 00:05:16,390 И тука, ние гледаме ние ќе да се напише на JPEG. 93 00:05:16,390 --> 00:05:20,980 Но ние прво треба оваа проверка која вели ако JPEG датотека не еднакви нула. 94 00:05:20,980 --> 00:05:22,490 Зошто ни треба тоа? 95 00:05:22,490 --> 00:05:28,020 И JPEG датотека е еднакво на нула кога ние Во моментов има отворен JPEG. 96 00:05:28,020 --> 00:05:31,870 >> Што ако картичка точка суровини започнува со еден куп на бајти кои 97 00:05:31,870 --> 00:05:33,510 не претставуваат JPEG? 98 00:05:33,510 --> 00:05:36,240 Тогаш ние ќе сакаат да прескокнете над оние бајти. 99 00:05:36,240 --> 00:05:39,600 Ако ние не ја имаат оваа проверка, тогаш ние сме ќе пишувам за неотворена 100 00:05:39,600 --> 00:05:45,540 датотека првиот 512 бајти на картичката, која не е добро. 101 00:05:45,540 --> 00:05:46,030 OK. 102 00:05:46,030 --> 00:05:51,330 >> Па претпоставуваме дека го имаме отворена датотека, тогаш ние ќе пишувам за таа датотека на 103 00:05:51,330 --> 00:05:53,290 512 бајти што ја имаме во нашите тампон. 104 00:05:53,290 --> 00:05:57,390 И ние сме повторно проверка за да бидете дека 512 бајти успешно 105 00:05:57,390 --> 00:06:01,140 беа напишани, бидејќи ако тие не беа успешно запишана, тогаш нешто 106 00:06:01,140 --> 00:06:02,080 не беше во ред. 107 00:06:02,080 --> 00:06:06,540 Ќе ги затвориме нашите датотеки, печати дека нешто тргнало наопаку и да се врати. 108 00:06:06,540 --> 00:06:10,940 Претпоставувајќи се оди правилно, тогаш ние ќе продолжиме looping затворање на 109 00:06:10,940 --> 00:06:15,060 старата датотека, за отворање на новата датотека, пишување податоци на новата датотека, и така 110 00:06:15,060 --> 00:06:20,990 се додека, конечно, ова ѓ прочита враќа нула што значи 111 00:06:20,990 --> 00:06:23,280 дека датотеката е направено. 112 00:06:23,280 --> 00:06:28,490 >> Па сега дека картичка читање е над, ние видите дека ние ќе треба да ѓ затвори 113 00:06:28,490 --> 00:06:33,250 последните датотека што имавме отворени, но ние сме проверка, ако JPEG датотека 114 00:06:33,250 --> 00:06:34,900 не е еднакво на нула. 115 00:06:34,900 --> 00:06:39,520 И ѓ во близина има смисла, бидејќи како ние сме за отворање на датотеки, ги затвораме 116 00:06:39,520 --> 00:06:43,870 претходната датотека, но последен датотека која ги отворивме никогаш не добива затворени. 117 00:06:43,870 --> 00:06:45,580 Значи тоа е она што овој го прави. 118 00:06:45,580 --> 00:06:47,720 >> Но, зошто треба да се провери за ништовни? 119 00:06:47,720 --> 00:06:53,130 Па што ако картичка точка суровини не го имаат еден JPEG во него? 120 00:06:53,130 --> 00:06:56,640 Во тој случај, ќе имаме никогаш не отвори датотеката. 121 00:06:56,640 --> 00:07:00,230 И ако ние никогаш не се отвори датотеката, ние треба да Не обидувај се да се затвори таа датотека. 122 00:07:00,230 --> 00:07:03,000 Значи тоа е она што оваа проверка се прави. 123 00:07:03,000 --> 00:07:07,880 >> Сега тука, како што реков претходно, ние би можеле да имаат скршени дека у јамка или ако 124 00:07:07,880 --> 00:07:13,520 картичката заврши или ако постојат некои грешка при читање на картичката. 125 00:07:13,520 --> 00:07:16,680 Значи ова е проверка за да видат дали има грешка при читање од картичката, во 126 00:07:16,680 --> 00:07:19,400 кој случај, ние ќе кажеме дека беше грешка читање на. 127 00:07:19,400 --> 00:07:22,130 Ние не сакаме на корисникот да се размислува сè отиде успешно. 128 00:07:22,130 --> 00:07:24,750 И ние ќе се врати еден за грешка. 129 00:07:24,750 --> 00:07:29,580 >> Конечно, ние ќе ѓ затвориме нашите суровини датотека, нашата картичка точка суровини, да се покаже дека 130 00:07:29,580 --> 00:07:34,070 сето мина добро и да се врати нула и тоа е тоа. 131 00:07:34,070 --> 00:07:36,130 >> Моето име е Роб и ова беше реставрирана. 132 00:07:36,130 --> 00:07:42,102 >> [Музички]