1 00:00:00,000 --> 00:00:00,996 2 00:00:00,996 --> 00:00:12,470 >> [음악 연주] 3 00:00:12,470 --> 00:00:13,210 >> ROB 보덴 : 안녕하세요. 4 00:00:13,210 --> 00:00:16,870 나는 롭이고하자의 크기 이 문제입니다. 5 00:00:16,870 --> 00:00:20,990 그래서 우리는 copy.c로 시작하는거야 템플릿,하지만 우리가 될 것입니다 6 00:00:20,990 --> 00:00:23,340 꽤 변경. 7 00:00:23,340 --> 00:00:27,570 >> 이제 우리는 우리가 즉시 돼서 우리는 더 이상 확인하고 위치를 변경하지 8 00:00:27,570 --> 00:00:31,560 우리의 RXC 이제 3와 동일하지만,하지 않습니다에 우리는 RC를 확인하는 것은 4와 동일하지 않습니다. 9 00:00:31,560 --> 00:00:34,670 우리는 또한에 포함 할 때문에 파일 및 출력 파일에 추가 10 00:00:34,670 --> 00:00:39,550 이 될 것입니다 인수, F 우리가 확장하고하는 요인. 11 00:00:39,550 --> 00:00:45,430 >> 우리는 그 확신 그래서 일단, 우리가 원하는 문자열을 변환의 검사 f를 사용 12 00:00:45,430 --> 00:00:49,030 float로 argv1. 13 00:00:49,030 --> 00:00:51,330 그리고 우리는 저장하는거야 점에서 요인. 14 00:00:51,330 --> 00:00:55,180 이러한 추가 문자를 확인하고있다 우리는 실제로 입력되지 않습니다 15 00:00:55,180 --> 00:00:59,200 1.4 ABC 같은 명령 줄에서. 16 00:00:59,200 --> 00:01:02,960 >> 이제 우리는 몇 가지 별칭을 만들거야 RV2 및 RV3가 아니기 때문에 17 00:01:02,960 --> 00:01:04,310 매우 도움 이름. 18 00:01:04,310 --> 00:01:07,660 우리는 대신 호출하는거야 그 파일과 파일 중. 19 00:01:07,660 --> 00:01:11,580 이제 우리는 있는지 확인하는 것입니다 우리의 요인이 실제로 유효했다. 20 00:01:11,580 --> 00:01:16,330 그래서 인자보다 작거나 같으면 제로 이상 100 이상, 다음과 같은 당 21 00:01:16,330 --> 00:01:19,660 사양은, 우리는 거부해야 그 요인. 22 00:01:19,660 --> 00:01:23,890 >> 우리가 확신 할 때 지금 우리가 할 수있는, 좋은 N 파일을 열고, 우리는 확인해야 23 00:01:23,890 --> 00:01:25,950 성공적 열린 있는지 확인합니다. 24 00:01:25,950 --> 00:01:28,630 그렇지 않은 경우 즉, null를 돌려줍니다. 25 00:01:28,630 --> 00:01:30,390 우리는 밖으로 파일을 열 것입니다. 26 00:01:30,390 --> 00:01:33,420 그리고 다시, 우리는 확인하기 위하여 검사 할 확실히 그것은 성공적으로 열려있어. 27 00:01:33,420 --> 00:01:37,270 그리고 그것은 성공적으로 다음 열지 않은 경우 우리는 또한 닫아야 할 필요가 28 00:01:37,270 --> 00:01:40,870 N 파일에있는 원래 성공적으로 열, 그렇지 않으면 우리는이 29 00:01:40,870 --> 00:01:42,600 메모리 누수. 30 00:01:42,600 --> 00:01:46,350 >> 그래서 지금 우리는 비트 맵에서 읽을거야 파일 헤더와 비트 맵 정보 31 00:01:46,350 --> 00:01:48,890 N 파일에서 헤더. 32 00:01:48,890 --> 00:01:52,360 우리는 있는지 확인하는 것입니다 n 개의 파일이 올바른 비트 맵이었다. 33 00:01:52,360 --> 00:01:52,640 OK. 34 00:01:52,640 --> 00:01:55,100 >> 그래서 지금 우리는 시작하는거야 일부 변경. 35 00:01:55,100 --> 00:01:58,840 우리는 변화 될 것입니다 그래서 때문에 일이, 우리는 먼저 기억하고 싶은 36 00:01:58,840 --> 00:02:01,510 N 파일의 오래된 폭. 37 00:02:01,510 --> 00:02:05,160 우리는 기존의 패딩을 기억하고 싶은 동일한 계산을 사용하여 N 파일 38 00:02:05,160 --> 00:02:06,990 copy.c.에서 39 00:02:06,990 --> 00:02:09,840 >> 그리고 지금 우리가 바꿀 것입니다 비트 맵 정보 헤더. 40 00:02:09,840 --> 00:02:13,630 그래서 우리는 폭을 모두 곱입니다 그 이후 계수를 높이 41 00:02:13,630 --> 00:02:15,750 그것은 우리가로 확장하는거야. 42 00:02:15,750 --> 00:02:18,420 우리는 결정하는거야 파일로의 새로운 패딩 43 00:02:18,420 --> 00:02:21,140 새 너비를 사용하여. 44 00:02:21,140 --> 00:02:27,330 그리고 우리는 새를 결정하는거야 숫자를 사용하여 화상의 크기 45 00:02:27,330 --> 00:02:31,610 가는 하나의 행에있는 바이트 해당 행의 화소 수있을 46 00:02:31,610 --> 00:02:35,960 배 픽셀의 사이즈에, 끝에 패딩 바이트 수 47 00:02:35,960 --> 00:02:40,310 해당 행의, 그리고 모든 것을 곱 우리가 가지고있는 행의 수만큼. 48 00:02:40,310 --> 00:02:43,800 그래서 바이트 수의 우리는 우리의 이미지 데이터에 있습니다. 49 00:02:43,800 --> 00:02:48,190 >> Bf.Bfsize 이제 숫자가 될 것입니다 우리의 이미지 베타 바이트 + 50 00:02:48,190 --> 00:02:49,350 우리의 헤더의 크기입니다. 51 00:02:49,350 --> 00:02:53,910 비트 맵 파일 헤더 너무 크기 플러스 와 비트 맵 정보 헤더의 크기입니다. 52 00:02:53,910 --> 00:02:54,510 OK. 53 00:02:54,510 --> 00:02:56,440 그래서 우리의 헤더를 위해이다. 54 00:02:56,440 --> 00:02:59,030 우리는 파일 쓰기 헤드 수 우리 밖으로에 대한 정보를 헤더 55 00:02:59,030 --> 00:03:01,590 파일, 우리는 좋은거야. 56 00:03:01,590 --> 00:03:03,800 >> 지금은 실제로 시작하는 시간 화소를 작성 57 00:03:03,800 --> 00:03:05,120 아웃 파일에 데이터를 저장합니다. 58 00:03:05,120 --> 00:03:10,460 우리는 크기의 버퍼를 선언하는거야 오래된 폭 RGB는 세 배로, 우리는거야 59 00:03:10,460 --> 00:03:13,790 라는 변수를 선언하는 것 우리가려고하고있다 행 마비, 60 00:03:13,790 --> 00:03:15,640 처음에 음의 1과 동일하게 설정. 61 00:03:15,640 --> 00:03:19,090 우리는 우리가 사용하는 거라고 볼 수 있습니다 그 무엇을 추적하기 위해 62 00:03:19,090 --> 00:03:22,640 우리가 현재로드 한 행 이 버퍼에. 63 00:03:22,640 --> 00:03:23,290 OK. 64 00:03:23,290 --> 00:03:28,750 >> 그래서 지금, 표준 버전과는 달리 대신에에에 대해 반복의 65 00:03:28,750 --> 00:03:32,900 파일, 우리는 각각의 반복거야 아웃 파일의 행 및 파악 66 00:03:32,900 --> 00:03:38,130 우리가 원하는에있는 파일에있는 행 아웃 파일에이 행에 배치합니다. 67 00:03:38,130 --> 00:03:44,930 그래서 밖으로의 모든 행에 대해 반복 새로운 높이를 사용하여 파일을, 우리는 처음이에요 68 00:03:44,930 --> 00:03:48,890 이전에 행을 결정하는 것 우리는 우리가있어, 이는 사용하고자하는 파일을 69 00:03:48,890 --> 00:03:53,560 이 전류를 복용 할 것 행 계수로 나눈 값입니다. 70 00:03:53,560 --> 00:03:58,000 그래서 우리에게 행을 줄 것 우리가 원하는 오래된 파일. 71 00:03:58,000 --> 00:04:03,310 >> 그래서 지금의 경우 행 감각이 동일하지 오래된 Y 않습니다, 우리는 열을 읽기해야 할 것입니다 72 00:04:03,310 --> 00:04:05,940 우리는 우리의 현재 행을 버퍼에 원하는. 73 00:04:05,940 --> 00:04:07,700 그래서 우리가 어떻게 그렇게 할거야? 74 00:04:07,700 --> 00:04:11,650 첫째, 우리는 알아낼거야 에 해당 행을 시작 위치 75 00:04:11,650 --> 00:04:13,100 원본 파일. 76 00:04:13,100 --> 00:04:18,630 그래서 위치가 될 것입니다 우리의 모든 헤더와 과거 77 00:04:18,630 --> 00:04:21,589 지금은 과거의 오래된 Y 행. 78 00:04:21,589 --> 00:04:23,880 >> 그리고 얼마나 많은 바이트 단일 행에? 79 00:04:23,880 --> 00:04:28,740 또, 배 배 RGB의 크기 이전 폭 플러스 된 패딩, 그래서의 80 00:04:28,740 --> 00:04:30,640 하나의 행에있는 바이트 수. 81 00:04:30,640 --> 00:04:33,680 그리고 우리는 지난 오래된 Y 행을 건너 뛰려. 82 00:04:33,680 --> 00:04:37,580 그래서 우리는 f를 추구하는 것입니다 그리고 우리는 야 에서 시작하도록 설정을 추구하여 83 00:04:37,580 --> 00:04:39,100 파일의 시작. 84 00:04:39,100 --> 00:04:42,740 우리는이 위치를 추구 F에가는거야 파일에 우리를 넣어 85 00:04:42,740 --> 00:04:46,500 우리가 원하는 행의 시작 우리의 버퍼로 읽을 수 있습니다. 86 00:04:46,500 --> 00:04:48,510 >> 우리는 행을 설정하는거야 이전 예와 동일한 감각. 87 00:04:48,510 --> 00:04:53,080 그래서 지금 만약 우리 루프 다시 우리가 원하는 우리 중 파일에서이 같은 행을 사용하여, 88 00:04:53,080 --> 00:04:55,970 우리는 읽을하지 않을거야 거기에 다시 불필요. 89 00:04:55,970 --> 00:04:59,310 그래서 정말, 행 마비는 그냥 최적화. 90 00:04:59,310 --> 00:05:05,500 >> 마지막으로, 우리는에 읽을거야 현재 행 이전의 폭 RGB는 세 배로 91 00:05:05,500 --> 00:05:08,040 우리는 원본 파일에서 원하는 것을. 92 00:05:08,040 --> 00:05:12,270 그래서 지금 현재 행에서 픽셀을 포함 우리가 원하는 원본 파일 93 00:05:12,270 --> 00:05:14,200 아웃 파일로 작성합니다. 94 00:05:14,200 --> 00:05:18,960 그래서 지금, 바로 위에 좋아, 대신 이전 파일 반복, 우리는 필요 95 00:05:18,960 --> 00:05:22,560 그것은 새로운 파일 행을 반복합니다. 96 00:05:22,560 --> 00:05:27,450 자, 여기, 대신에 반복의 모든 이전 픽셀의 현재 행에있는, 97 00:05:27,450 --> 00:05:31,210 우리는 모두를 반복 할 이 우리의 새 파일의 픽셀 98 00:05:31,210 --> 00:05:32,480 특정 행. 99 00:05:32,480 --> 00:05:34,140 >> 왜 우리는 그렇게 할 수 있습니까? 100 00:05:34,140 --> 00:05:38,960 우리는 우리가하지 않은 것을 여기에서 볼 수 있기 때문에 실제로 반드시 모두 사용 101 00:05:38,960 --> 00:05:41,020 원본 파일의 픽셀. 102 00:05:41,020 --> 00:05:46,630 우리가 감소하는 경우, 우리는 수 있기 때문에 실제로 픽셀을 건너 뛰려. 103 00:05:46,630 --> 00:05:48,090 그리고 우리는 이것을 볼 - 104 00:05:48,090 --> 00:05:49,690 X 팩터로 나눈 - 105 00:05:49,690 --> 00:05:55,620 우리는 Y 말을 어디 밀접 여기에 반영 파악하는 요인으로 나누어 그 106 00:05:55,620 --> 00:06:02,480 이전 Y 번째 행에 해당 이 새로운 파일의 Y 번째 행. 107 00:06:02,480 --> 00:06:05,880 >> 이제 우리는 모두를 쓸거야 이전 행에서 이러한 픽셀 108 00:06:05,880 --> 00:06:07,440 우리의 새로운 행에. 109 00:06:07,440 --> 00:06:10,890 우리가 그 일을 한 후에, 우리는 필요 단지 우리 행의 끝에 패딩 두어 110 00:06:10,890 --> 00:06:15,540 그리고 우리는 루프를 거하고 계속 새로운 파일의 모든 행. 111 00:06:15,540 --> 00:06:19,390 결국, 우리는 우리의 오래된을 닫을 필요 , 파일을 새로운 파일을 닫고 반환 112 00:06:19,390 --> 00:06:21,540 제로 모든 것이 잘 갔다하기 때문이다. 113 00:06:21,540 --> 00:06:24,220 >> 내 이름은 롭이는 쉬는 시간이었다. 114 00:06:24,220 --> 00:06:29,184 >> [음악 연주]