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 >> ROB 보덴 : 안녕하세요. 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 따라서 사용량이 뭔가해야 점 슬래시 복구 등을들 수있다. 10 00:00:31,490 --> 00:00:35,500 >> 이제 우리는 예상을 열거야 카드는 RAW 파일을 점. 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 여기에, 우리는 그것의 볼 최대 8 개의 정의 해시. 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 그래서 우리가 할 수있는 버퍼가 필요 8 문자를 저장합니다. 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 >> 그리고 마지막으로, 우리는해야 할 것입니다 처음에 null의 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 우리는 F 우리의 버퍼로 읽어 온거야 단일 바이트의 블록 크기의 배에서 38 00:02:12,980 --> 00:02:14,710 이 카드는 RAW 파일을 점. 39 00:02:14,710 --> 00:02:16,630 이제 F 반환 무엇을 읽을 수 있는가? 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 그리고이 기능은 예정 이 버퍼를 나타내는 경우는 true를 돌려 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 파일, 널 (null)와 동일하지 이 경우 우리는 그것을 닫습니다. 64 00:03:42,030 --> 00:03:44,940 그리고 왜 우리가 확인해야합니까 null가 아닌 경우에 참조?합니다 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 우리는 세 개의 정수를 사용합니다 말한다 이를 위해 0으로 채워. 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 그리고 우리는 그렇게를 증가하고있는 우리가 열고 다음 파일은 0 0 될 것입니다 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 우리는 f를 쓰기 위해 해당 파일을 열 수 있습니다. 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 파일은 같은 널 (null)을하지 않습니다. 94 00:05:20,980 --> 00:05:22,490 왜 우리가 필요합니까? 95 00:05:22,490 --> 00:05:28,020 잘 JPEG 파일은 널 (null)과 같을 때 우리 현재 열려있는 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 가정 모두는, 제대로 간다 우리는 폐쇄 루프하겠습니다 109 00:06:10,940 --> 00:06:15,060 기존 파일에 새 파일을 열고, 쓰기 그래서 새 파일에 데이터, 110 00:06:15,060 --> 00:06:20,990 마지막으로,이 F를 읽을 때까지 0을 반환하는 방법 111 00:06:20,990 --> 00:06:23,280 파일이 이루어집니다. 112 00:06:23,280 --> 00:06:28,490 >> 그래서 지금 카드 판독이 끝난 것을, 우리 우리가 F 닫 거라고 볼 113 00:06:28,490 --> 00:06:33,250 우리는 개방했지만, 마지막 파일 우리가 확인하는 경우 JPEG 파일 114 00:06:33,250 --> 00:06:34,900 동일하지 널 (null)을 수행합니다. 115 00:06:34,900 --> 00:06:39,520 그럼 F 가까이 때문에 같은 의미가 있습니다 우리는 우리가 폐쇄하고, 파일을 열 수있어 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 >> 그런데 왜 우리는 널 (null)을 확인해야합니까? 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 >> 내가 전에 말했듯이 지금, 여기, 우리는 할 수 있었다 그 Y 루프 어느 경우를 부러 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 >> 마지막으로, 우리는 F 우리의 원시 파일을 닫을 것이다, 우리 카드는 것을 나타 내기 위해, 원시 점 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 >> [음악 연주]