[음악 연주] ROB 보덴 : 안녕, 난 롭 해요하자 크기에 이것을 시도. 그래서, 우리는 다시 시작하려고하는 기본적으로 copy.c의 복사, 몇 가지 변경합니다. 바로 우리가 변화를 볼 수 있습니다 곳 대신 볼 검사의 경우 ARGC, 우리는 확인하는 3 일치하지 싶지 않습니다 ARGC 이후, 4 일치하지 않는 경우 지금 우리는 단지 INFILE에 데려 갈 수 없어 및 OUTFILE, 그러나 우리는 또한 섭취하시는 우리가하는 금액을 말합니다 N, 원본 이미지로 확장. 우리는 그 확신하면, 우리는 할 수있다 다만 atoi와를 사용하여 정수 N 변환합니다. 그래서, 지금 우리는 몇 가지를 만들려고 별명은 단지 2 INFILE argv를 호출하고, ARGV 3 OUTFILE, ARGV 2 때문에 ARGV 3 매우 도움이 이름이 없습니다. 이제 우리는 확인 n은 확인하기 위하여 검사 할 범위 내에서 우리가 기대하는, 그래서 스펙을 지정하는 그것보다 작거나의 경우 제로 같거나 100보다 크 그 잘못된 크기 조정 계수의, 그리고 우리는 그 사용자에게 경고해야합니다. 우리 모두가 그 이상 들어가면, 우리는 할 수있다 마지막으로 우리의 INFILE을 열고, 우리는 필요 있는지 확인하십시오 오류로 오프닝은 어떤 이유로 실패하지 않았다. 우리는 또한 우리의 OUTFILE을 열 필요가 있고, 다시 있는지 확인하십시오 오류 어떤 이유로 실패하지 않았다. 하지만 확신 할 경우의 개통 OUTFILE 우리가 닫아야 실패 이미 열린 INFILE. 그래서, 다음, 즉 실패하지 않은 가정 우린 - 그냥 같이 copy.c - - 헤더에서 읽은 것 INFILE에서. 우리는 반드시 유효한의 만드는거야 비트 맵,하지만 지금 우리는 몇 가지를 할거야 조금 다르게. 그래서 일단, 우리가 원하는거야 원래의 폭과 높이를 기억 INFILE의, 때문에 우리는에가는거야 OUTFILE을 위해 변경 될 수있다. 그래서 지금 이상한 이유로 그 기억 bi.biheight, 부정하고, 그래서의 실제 높이, 긍정적 인, 우리 절대 값을 받고 있습니다. 이제, 패딩 같은 될 것입니다 이 copy.c했다 계산으로, 이전 폭을 사용하여, 지금 우린 실제로 바꿀 것 우리의 헤더에있는거야. 그래서 우리가 우리의 폭을 곱거야 N, 우리는에 의해 폭을 확장하고 있기 때문에 우리가에 있기 때문에 N, N에 의해​​ 높이를 곱 n으로 확장, 그리고 지금 우리가 새로운 패딩 계산 새 너비에 따라. 그래서 지금 우리는 몇 가지를 변경해야 우리의 헤더에있는 다른 필드. Bi.biSizeImage가 있어야하는데 픽셀의 모든 바이트의 크기 이미지의 패딩. 그리고 우리의 단일 행의 크기 이미지는 RGB의 크기 배, 크기 단일 픽셀의, 배 번호 행의 픽셀 플러스 패딩에 행의 끝. 그리고 우리는 곱해거야 얻을 수있는 우리의 높이의 절대 값 바이트의 총수 화상 데이터. bf.bfSize은 총 수입니다 우리의 이미지 데이터를 바이트, 그래서 bi.biSizeImage 플러스 우리의 헤더의 크기입니다. 따라서, 비트 맵 파일의 크기에 추가 비트 맵 정보의 헤더 및 크기 OK, 헤더. 그래서 우리가 필요로하는 모든 정보 우리의 헤더에 변경합니다. 이제 우리는 비트 맵 파일 헤더를 쓸 것이다 우리 OUTFILE, 우리의 비트 맵 정보에 지금 우리 outfile로 헤더 및 우리는가는 시작할 준비가 실제 픽셀 이상. 그래서 우리는 반복 할 INFILE의 스캔 라인. 그래서 우리는 oldheight 반복합니다. 우리가 기억하는 데 필요한 이유입니다 우리가 그것을 변경하기 전에 원래 높이, 및 N으로 스케일링. 이제 우리는 하나를 읽을거야 에 INFILE의 행 크기 oldwidth의 버퍼. RGB의, 그래서 여기에 우리가 freading하고 크기 트리플, 하나의 픽셀, 그리고 오래된 폭 우리의 버퍼에 INFILE에서 그들. 그리고 그 전체가 될 것 이 배열의 행. 그래서 지금, 우리는에 N 번 반복 할 우리 OUTFILE n 번에이 행을 인쇄 할 수 있습니다. 그리고 그이 루프가 수행하는 작업입니다. 이 내부 루프는 반복된다 배열에서 인쇄 자체를 행 배열을 n 번에서 각 픽셀. 그래서 제로 번째의 요소는 인쇄중인 n 번, 첫 번째 요소가되고있다 N 번 인쇄. 그리고 그 종류의 우리가 어떻게 갈거야 것 수평 OUTFILE에 확장하고, 이 루프, 우리는 N을 반복하고 있기 때문에 시간은 우리가 갈거야 방법입니다 수직 스케일. 여기 아래, 우리는 우리가 추가 할 필요가 있음을 볼 수 각 행의 끝에 패딩. 이에 대한 루프 내에서 이유입니다 그것은 단지의 n 행을 인쇄하는 것 INFILE에서이 하나의 행. 그런 다음 아래로 여기, 내가 건너 갈거야 INFILE의 패딩 번 이후 우리는 한 행으로 완료 INFILE, 우리는 걱정하지 않는다 어떤 패딩이었다. 우리는 단지 두 번째 행에 도착합니다. 그리고 우리는 다시 루프거야 모든 수행 이 다시 두 번째 행. 마지막으로, 한 번 우리 모두는 그와 함께 완료, 우리는 가까운 INFILE을 닫을 수 있습니다 OUTFILE 및 반환 0 우리가 수행하고 있기 때문이다. 내 이름은 롭이며,이 크기 조정했다. [음악 연주]