>> [音楽再生]
>> ROBボーデン：こんにちは、私はロブだけど、みましょう サイズの上でこれを試してみてください。
だから、我々は再びで始まるしようとしている それなのに基本的にコピーし、
いくつかの変更を行います。
すぐに我々は、変化を見る注意場所 代わりかどうかをチェックする
ARGC 3等しく、我々は確認する必要はありません。 argcがあるので、4と等しくない場合
今、私たちはただ、INFILEに取っていない および出力ファイルが、我々はまた、取っている
我々はしている量であり、N、 原画像を縮小。
我々はそれの確信していると、我々はできるだけ atoi関数を使って整数にNに変換します。
>> だから、今我々はいくつかを作成しましょう 別名、単にARGV 2 INFILEを呼び出し、
ARGV 3の出力ファイル、ARGV 2および理由 ARGV 3は非常に有用名前ではありません。
今、私たちは確認するチェックしたいnは 我々が期待した範囲内のため、
スペックは以下の場合に指定します 、ゼロに等しい、または100より大きい
その、無効なサイズ変更要因だが、 そして我々はそのことをユーザに警告する必要があります。
>> 我々はすべてのことを超えていると、我々はできる 最終的に我々INFILEを開いて、我々は必要とする
誤りを確認して下さい 開口部は、何らかの理由で失敗しませんでした。
我々はまた、我々の出力ファイルを開く必要がありますし、 もう一度確認してくださいエラー
何らかの理由で失敗しませんでした。
しかし、必ず場合の開口部 出力ファイルは、我々は閉じる必要があることを失敗した
すでに開かれたINFILE、。
>> だから、それから、それは失敗しなかったと仮定すると 判断に苦しみ - ちょうどのように、それなのに、 -
ヘッダーに読むつもり INFILEから。
我々は確かにそれが有効だするつもりだ ビットマップが、今我々はいくつかをやろうとしている
少し違ったこと。
したがって、最初、私たちはするつもりだ 元の幅と高さを覚えている
INFILEの、我々はするつもりだので、 出力ファイルのためにそれを変更すること。
だから今、奇妙な理由のためにそれを覚えている bi.biheight、否定的であり、
正、我々にあるので、実際の高さ、 絶対値を取りたい。
>> 今、パディングは同じになるだろう それはそれなのににあったように、計算、
古い幅を使用して、そして今、我々はしている 実際に変更するつもり
私たちのヘッダーにあるんだ。
だから我々は弊社の幅を乗算するつもりだ N、我々は、幅を縮小しているので
N、我々はしているので、nで高さを掛ける Nによるスケーリング、そして今、我々は持っている
新しいパディングのための計算 新しい幅に基づく。
>> だから今我々はいくつかの変更が必要に 私たちのヘッダ内の他のフィールド。
Bi.biSizeImageをすることになっている ピクセル単位でのすべてのバイトのサイズ
画像のパディング。
だから私たちの一つの行のサイズ 画像は、RGBトリプルサイズの大きさです
単一ピクセルの、倍の数の 行の画素に加え、パディング
行の終わり。
そして、我々によってそれを乗算するつもりだ 得るために私達の高さの絶対値
バイトの合計数 画像データである。
bf.bfSizeは単なる合計数です ので、私たちの画像データ、のバイト
bi.biSizeImage、プラス 私たちのヘッダーのサイズ。
そのように、ビットマップファイルのサイズに加算 ヘッダ、およびビットマップ情報のサイズ
[OK]を、ヘッダ。
だから、我々がする必要があるすべてです 私たちのヘッダーに変更します。
今、私たちは、ビットマップファイルのヘッダーを記述します 私たちの出力ファイル、および当社のビットマップ情報へ
現在、私たちの出力ファイルにヘッダと、 我々は行くを開始する準備が整いました
実際のピクセル以上。
>> だから我々は反復処理したい INFILEの走査線。
だから我々はoldheight反復処理します。
私たちは覚えているために必要なのはこのためです 我々はそれを変更する前に元の高さ、
そしてnで、それを拡大縮小。
今、私たちは、単一の読み取りを行っている へINFILEの列
サイズoldwidthのバッファ。
だからここでは、RGBのサイズをfreadingいる トリプル、1ピクセルと古い幅
私たちのバッファにINFILEからそれら。
そして、それは全体のことになるだろう この配列内の行。
だから今、私たちはにn回の繰り返し処理をしたい 私たちの出力ファイルをn回にこの行を印刷します。
となるように、このループが何をしているかだ。
この内側のループは、繰り返し処理をされている アレイ上に印刷、それ自体を行
配列n回の各ピクセル。
そのようにゼロ番目の要素が印刷されている n回、最初の要素が中である
n回印刷した。
そして、それは我々がしようとしているかのようなものだ 水平出力ファイルに拡張し、
このループは、n個のループしているので 時間は、私たちがしようとしている方法です
垂直スケール。
>> ダウンここで、我々は我々が追加する必要があることがわかります 各行の最後にパディング。
これがループの内側にある理由です それはちょうどのn行をプリントアウトだ
INFILEからこの1行。
そして、ここまで、私はスキップするつもりだ 一回以来INFILEパディング、
私たちは一列で行われている INFILE、我々は気にしない
どのようなパディングがあった。
我々は、ちょうど第二行に取得したい。
そして、我々は、ループバックだろうと、すべてやる 再びこの2行目。
>> 最後に、一度私たちはすべてのことを行っている、 我々は近い、INFILEを閉じることができます
出力ファイル、およびリターン 0私たちが行っているため。
>> 私の名前はロブであり、これは、サイズ変更した。
>> [音楽再生]