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 だから、我々は再びで始まるしようとしている それなのに基本的にコピーし、 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に取っていない および出力ファイルが、我々はまた、取っている 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 >> だから、今我々はいくつかを作成しましょう 別名、単にARGV 2 INFILEを呼び出し、 11 00:00:48,760 --> 00:00:54,240 ARGV 3の出力ファイル、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 我々はまた、我々の出力ファイルを開く必要がありますし、 もう一度確認してくださいエラー 18 00:01:19,860 --> 00:01:21,250 何らかの理由で失敗しませんでした。 19 00:01:21,250 --> 00:01:26,270 しかし、必ず場合の開口部 出力ファイルは、我々は閉じる必要があることを失敗した 20 00:01:26,270 --> 00:01:29,040 すでに開かれたINFILE、。 21 00:01:29,040 --> 00:01:33,690 >> だから、それから、それは失敗しなかったと仮定すると 判断に苦しみ - ちょうどのように、それなのに、 - 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の、我々はするつもりだので、 出力ファイルのためにそれを変更すること。 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 >> 今、パディングは同じになるだろう それはそれなのににあったように、計算、 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 今、私たちは、ビットマップファイルのヘッダーを記述します 私たちの出力ファイル、および当社のビットマップ情報へ 49 00:03:07,020 --> 00:03:09,880 現在、私たちの出力ファイルにヘッダと、 我々は行くを開始する準備が整いました 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いる トリプル、1ピクセルと古い幅 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回の繰り返し処理をしたい 私たちの出力ファイルを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 そして、それは我々がしようとしているかのようなものだ 水平出力ファイルに拡張し、 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からこの1行。 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 そして、我々は、ループバックだろうと、すべてやる 再びこの2行目。 77 00:04:40,870 --> 00:04:44,406 >> 最後に、一度私たちはすべてのことを行っている、 我々は近い、INFILEを閉じることができます 78 00:04:44,406 --> 00:04:47,430 出力ファイル、およびリターン 0私たちが行っているため。 79 00:04:47,430 --> 00:04:50,330 >> 私の名前はロブであり、これは、サイズ変更した。 80 00:04:50,330 --> 00:04:54,934 >> [音楽再生]