1 00:00:00,000 --> 00:00:12,240 >> [음악 연주] 2 00:00:12,240 --> 00:00:15,870 >> ROB 보덴 : 안녕, 난 롭 해요하자 크기에 이것을 시도. 3 00:00:15,870 --> 00:00:21,100 그래서, 우리는 다시 시작하려고하는 기본적으로 copy.c의 복사, 4 00:00:21,100 --> 00:00:22,860 몇 가지 변경합니다. 5 00:00:22,860 --> 00:00:26,280 바로 우리가 변화를 볼 수 있습니다 곳 대신 볼 검사의 경우 6 00:00:26,280 --> 00:00:30,440 ARGC, 우리는 확인하는 3 일치하지 싶지 않습니다 ARGC 이후, 4 일치하지 않는 경우 7 00:00:30,440 --> 00:00:34,350 지금 우리는 단지 INFILE에 데려 갈 수 없어 및 OUTFILE, 그러나 우리는 또한 섭취하시는 8 00:00:34,350 --> 00:00:38,980 우리가하는 금액을 말합니다 N, 원본 이미지로 확장. 9 00:00:38,980 --> 00:00:44,340 우리는 그 확신하면, 우리는 할 수있다 다만 atoi와를 사용하여 정수 N 변환합니다. 10 00:00:44,340 --> 00:00:48,760 >> 그래서, 지금 우리는 몇 가지를 만들려고 별명은 단지 2 INFILE argv를 호출하고, 11 00:00:48,760 --> 00:00:54,240 ARGV 3 OUTFILE, ARGV 2 때문에 ARGV 3 매우 도움이 이름이 없습니다. 12 00:00:54,240 --> 00:00:58,510 이제 우리는 확인 n은 확인하기 위하여 검사 할 범위 내에서 우리가 기대하는, 그래서 13 00:00:58,510 --> 00:01:02,910 스펙을 지정하는 그것보다 작거나의 경우 제로 같거나 100보다 크 14 00:01:02,910 --> 00:01:08,580 그 잘못된 크기 조정 계수의, 그리고 우리는 그 사용자에게 경고해야합니다. 15 00:01:08,580 --> 00:01:13,090 >> 우리 모두가 그 이상 들어가면, 우리는 할 수있다 마지막으로 우리의 INFILE을 열고, 우리는 필요 16 00:01:13,090 --> 00:01:16,270 있는지 확인하십시오 오류로 오프닝은 어떤 이유로 실패하지 않았다. 17 00:01:16,270 --> 00:01:19,860 우리는 또한 우리의 OUTFILE을 열 필요가 있고, 다시 있는지 확인하십시오 오류 18 00:01:19,860 --> 00:01:21,250 어떤 이유로 실패하지 않았다. 19 00:01:21,250 --> 00:01:26,270 하지만 확신 할 경우의 개통 OUTFILE 우리가 닫아야 실패 20 00:01:26,270 --> 00:01:29,040 이미 열린 INFILE. 21 00:01:29,040 --> 00:01:33,690 >> 그래서, 다음, 즉 실패하지 않은 가정 우린 - 그냥 같이 copy.c - - 22 00:01:33,690 --> 00:01:36,140 헤더에서 읽은 것 INFILE에서. 23 00:01:36,140 --> 00:01:40,130 우리는 반드시 유효한의 만드는거야 비트 맵,하지만 지금 우리는 몇 가지를 할거야 24 00:01:40,130 --> 00:01:41,620 조금 다르게. 25 00:01:41,620 --> 00:01:44,870 그래서 일단, 우리가 원하는거야 원래의 폭과 높이를 기억 26 00:01:44,870 --> 00:01:48,290 INFILE의, 때문에 우리는에가는거야 OUTFILE을 위해 변경 될 수있다. 27 00:01:48,290 --> 00:01:53,890 그래서 지금 이상한 이유로 그 기억 bi.biheight, 부정하고, 28 00:01:53,890 --> 00:01:58,670 그래서의 실제 높이, 긍정적 인, 우리 절대 값을 받고 있습니다. 29 00:01:58,670 --> 00:02:02,580 >> 이제, 패딩 같은 될 것입니다 이 copy.c했다 계산으로, 30 00:02:02,580 --> 00:02:06,060 이전 폭을 사용하여, 지금 우린 실제로 바꿀 것 31 00:02:06,060 --> 00:02:07,320 우리의 헤더에있는거야. 32 00:02:07,320 --> 00:02:11,200 그래서 우리가 우리의 폭을 곱거야 N, 우리는에 의해 폭을 확장하고 있기 때문에 33 00:02:11,200 --> 00:02:15,100 우리가에 있기 때문에 N, N에 의해​​ 높이를 곱 n으로 확장, 그리고 지금 우리가 34 00:02:15,100 --> 00:02:19,250 새로운 패딩 계산 새 너비에 따라. 35 00:02:19,250 --> 00:02:21,840 >> 그래서 지금 우리는 몇 가지를 변경해야 우리의 헤더에있는 다른 필드. 36 00:02:21,840 --> 00:02:26,890 Bi.biSizeImage가 있어야하는데 픽셀의 모든 바이트의 크기 37 00:02:26,890 --> 00:02:28,520 이미지의 패딩. 38 00:02:28,520 --> 00:02:34,190 그리고 우리의 단일 행의 크기 이미지는 RGB의 크기 배, 크기 39 00:02:34,190 --> 00:02:39,430 단일 픽셀의, 배 번호 행의 픽셀 플러스 패딩에 40 00:02:39,430 --> 00:02:40,910 행의 끝. 41 00:02:40,910 --> 00:02:45,200 그리고 우리는 곱해거야 얻을 수있는 우리의 높이의 절대 값 42 00:02:45,200 --> 00:02:48,350 바이트의 총수 화상 데이터. 43 00:02:48,350 --> 00:02:53,050 bf.bfSize은 총 수입니다 우리의 이미지 데이터를 바이트, 그래서 44 00:02:53,050 --> 00:02:56,530 bi.biSizeImage 플러스 우리의 헤더의 크기입니다. 45 00:02:56,530 --> 00:02:59,850 따라서, 비트 맵 파일의 크기에 추가 비트 맵 정보의 헤더 및 크기 46 00:02:59,850 --> 00:03:00,800 OK, 헤더. 47 00:03:00,800 --> 00:03:03,170 그래서 우리가 필요로하는 모든 정보 우리의 헤더에 변경합니다. 48 00:03:03,170 --> 00:03:07,020 이제 우리는 비트 맵 파일 헤더를 쓸 것이다 우리 OUTFILE, 우리의 비트 맵 정보에 49 00:03:07,020 --> 00:03:09,880 지금 우리 outfile로 헤더 및 우리는가는 시작할 준비가 50 00:03:09,880 --> 00:03:11,990 실제 픽셀 이상. 51 00:03:11,990 --> 00:03:15,720 >> 그래서 우리는 반복 할 INFILE의 스캔 라인. 52 00:03:15,720 --> 00:03:17,730 그래서 우리는 oldheight 반복합니다. 53 00:03:17,730 --> 00:03:20,830 우리가 기억하는 데 필요한 이유입니다 우리가 그것을 변경하기 전에 원래 높이, 54 00:03:20,830 --> 00:03:23,040 및 N으로 스케일링. 55 00:03:23,040 --> 00:03:27,810 이제 우리는 하나를 읽을거야 에 INFILE의 행 56 00:03:27,810 --> 00:03:30,630 크기 oldwidth의 버퍼. 57 00:03:30,630 --> 00:03:36,190 RGB의, 그래서 여기에 우리가 freading하고 크기 트리플, 하나의 픽셀, 그리고 오래된 폭 58 00:03:36,190 --> 00:03:39,760 우리의 버퍼에 INFILE에서 그들. 59 00:03:39,760 --> 00:03:43,480 그리고 그 전체가 될 것 이 배열의 행. 60 00:03:43,480 --> 00:03:50,390 그래서 지금, 우리는에 N 번 반복 할 우리 OUTFILE n 번에이 행을 인쇄 할 수 있습니다. 61 00:03:50,390 --> 00:03:52,510 그리고 그이 루프가 수행하는 작업입니다. 62 00:03:52,510 --> 00:03:57,910 이 내부 루프는 반복된다 배열에서 인쇄 자체를 행 63 00:03:57,910 --> 00:04:00,710 배열을 n 번에서 각 픽셀. 64 00:04:00,710 --> 00:04:04,510 그래서 제로 번째의 요소는 인쇄중인 n 번, 첫 번째 요소가되고있다 65 00:04:04,510 --> 00:04:05,660 N 번 인쇄. 66 00:04:05,660 --> 00:04:10,820 그리고 그 종류의 우리가 어떻게 갈거야 것 수평 OUTFILE에 확장하고, 67 00:04:10,820 --> 00:04:13,390 이 루프, 우리는 N을 반복하고 있기 때문에 시간은 우리가 갈거야 방법입니다 68 00:04:13,390 --> 00:04:15,580 수직 스케일. 69 00:04:15,580 --> 00:04:19,850 >> 여기 아래, 우리는 우리가 추가 할 필요가 있음을 볼 수 각 행의 끝에 패딩. 70 00:04:19,850 --> 00:04:25,050 이에 대한 루프 내에서 이유입니다 그것은 단지의 n 행을 인쇄하는 것 71 00:04:25,050 --> 00:04:28,400 INFILE에서이 하나의 행. 72 00:04:28,400 --> 00:04:32,150 그런 다음 아래로 여기, 내가 건너 갈거야 INFILE의 패딩 번 이후 73 00:04:32,150 --> 00:04:34,560 우리는 한 행으로 완료 INFILE, 우리는 걱정하지 않는다 74 00:04:34,560 --> 00:04:35,290 어떤 패딩이었다. 75 00:04:35,290 --> 00:04:37,110 우리는 단지 두 번째 행에 도착합니다. 76 00:04:37,110 --> 00:04:40,870 그리고 우리는 다시 루프거야 모든 수행 이 다시 두 번째 행. 77 00:04:40,870 --> 00:04:44,406 >> 마지막으로, 한 번 우리 모두는 그와 함께 완료, 우리는 가까운 INFILE을 닫을 수 있습니다 78 00:04:44,406 --> 00:04:47,430 OUTFILE 및 반환 0 우리가 수행하고 있기 때문이다. 79 00:04:47,430 --> 00:04:50,330 >> 내 이름은 롭이며,이 크기 조정했다. 80 00:04:50,330 --> 00:04:54,934 >> [음악 연주]