[音楽再生] ROBボーデン:こんにちは。 私はロブだとしましょう​​のサイズ この問題は、最大。 だから我々は、それなのにで開始するつもりだ テンプレートが、我々はあることを行っている かなりの数の変更を行う。 今、我々はすぐに作っている参照してください。 私たちはもはやチェックしている変更 私たちのRXCのために今3と等しくしませんが、 我々は、RCをチェックしているのは4と等しくない。 我々はまた、中に含むようにしたいので ファイル内と外のファイルに加え このことを行っている引数、F 我々は、スケーリングしているする因数。 我々はそれの確信しているので、一度、私たちがしたい 文字列を変換するためのスキャンFを使用する floatにargv1。 そして、我々は店に行っている その要因に。 この追加の文字が確認している 私たちは実際に入っていないこと 1.4 ABCのようなもの コマンドラインで。 今、我々はいくつかの別名を作成しましょう RV2とRV3ではありませんので、 非常に役に立った名前。 私たちは、その代わりに、コールするつもりだ ファイルアウトファイルに。 今、私たちはそのことを確認するつもりだ 私達の要因は、実際には有効であった。 そこで因子は、以下に等しい場合 100よりもゼロ以上、その後に従って 仕様は、我々は拒否しなければならない その要因。 我々は確信しているとき、それは我々ができるようになりました、良いことだ n個のファイルを開いて、我々は確認する必要があり それが正常に開かれたことを確認してください。 それがなかった場合、それはnullを返します。 私たちは、外のファイルを開くしようとしている。 そして再び、我々は作るためにチェックしたい それが正常にオープンされていることを確認してください。 そしてそれは成功し、その後、オープンしなかった場合 我々はまた、閉じていることを確認する必要があり もともと成功し、n個のファイル 開かれた、あるいは、我々は持っている メモリリーク。 だから今、私たちは、ビットマップを読み込むつもりだ ファイルヘッダとビットマップ情報 n個のファイルからヘッダ。 私たちは、ことを確認するつもりだ n個のファイルには、有効なビットマップだった。 [OK]をクリックします。 だから今我々は開始するつもりだ いくつかの変更を行う。 だから我々は、変化することになるだろうので、 物事は、我々は最初に覚えておきたい n個のファイルの古い幅。 私たちは、古いパディングを覚えておきたい 同じ計算を使用してn個のファイル copy.c.から そして今、我々は変更するつもりだ ビットマップInfoヘッダー。 だから、我々は幅の両方を乗じている それ以来倍の高さ それは我々がすることによってスケーリングしているものです。 我々は決定するつもりだ によるファイルの新規パディング 新しい幅を使用した。 そして、我々は新しいを決定するつもりだ 数を用いて画像の大きさ しようとしている単一の行のバイト その行の画素の数である 倍画素の大きさに加え、 最後にパディングのバイト数 その行の、そしてすべてのことを乗じる 我々が持っている行の数によって。 だから、バイト数です 我々は我々の画像データを持っている。 Bf.Bfsizeは今の数になるだろう 私たちの画像ベータプラスのバイト 私たちのヘッダーのサイズ。 ビットマップファイルヘッダーのとてもプラスサイズ ビットマップ情報ヘッダのサイズ。 [OK]をクリックします。 だから、私たちのヘッダにこれだけです。 我々は、ファイル先頭を書き込むことができますし、 私たちのうちにInfoヘッダー ファイル、および我々は良いよ。 今では、実際に起動する時が来た ピクセルを書き込む outファイルにデータ。 私たちは、サイズのバッファを宣言するつもりだ 古い幅RGBがトリプル、そして我々はしている という変数を宣言するだろう 我々はするつもりされている行のしびれ、 当初は否定的な1に等しくなるように設定。 我々は、我々が使用してすることになるだろうことがわかります 何を追跡するために、その 我々は現在ロードされている行 このバッファへ。 [OK]をクリックします。 だから今、標準版とは異なり、 代わりに中で繰り返し処理の ファイルは、各反復するために行っている outファイルの行と把握 内のファイルにどの行たちがしたい outファイルにこの行に配置します。 だからうちのすべての行を繰り返し処理 新しい高さを使用してファイルには、まずね 古い行を決定する予定 私たちがしている、これを使用するつもりだファイル この電流を取ることによって何をするつもり 係数で割った行。 だから私たちに行を与えるために起こっている 私たちが望むの古いファイルで。 だから今の行のしびれが同じ古いyとしない場合は、 我々は、行を読むために必要があるとしている 私たちは、最新版の行バッファにしたいという。 では、どのようにそれをするつもりですか? まず、把握するつもりだ で、その行を開始した位置 元のファイル。 だから、その位置があることを行っている 私たちのすべてのヘッダーと過去 もはや過去の古いY行。 だから何バイト 単一の行にありますか? ここでも、トリプル倍、RGBの大き古い 幅プラス古い詰め物なので、それはです 単一の行のバイト数。 そして、我々は過去の古いY行をスキップしたいと思います。 だから我々は、F追求するつもりだし、我々はしている から開始するように設定を求めて使用して ファイルの先頭。 我々は、この位置にシークFになるだろう ファイルでは、少なくとも私たちを入れて 私たちが望む行の先頭 私たちのバッファに読み込む。 我々は、行を設定しようとしている 旧Yに等しいしびれ。 だから今であれば、我々ループバックし、我々がしたい 私たちのうちのファイルに同じ行を使用して、 その後、我々は読んでするつもりはない これで再び不必要。 だから本当に、行しびれがある ただ最適化。 最後に、我々はに読み込まするつもりだ 現在の行の古い幅のRGBトリプル 私たちは、元のファイルから必要なこと。 だから今最新版の行からのピクセルが含まれています 我々がしたい、元のファイル outファイルに書き込む。 だから今、すぐ上が好き、代わりに 古いファイルを反復処理する、我々は必要とする それは、新しいファイルの行を反復処理する。 さてここで、代わりに繰り返し処理をすべて 旧画素の最新版並んでいる、 我々はすべてを反復処理したい この中で私たちの新しいファイル内のピクセル 特定の行。 なぜ我々はそれをしたいですか? 我々は我々がわからないことをここに見るので、 実際に、必ずしもすべてを使用して 元のファイルのピクセル。 我々は縮小している場合、我々は可能性があるため、 実際のピクセルをスキップしたい。 そして、我々はこのことを確認 - Xファクターで割った - 我々はYと答えるところ密接にここにミラー 把握する係数で割ったもの 旧Y行目は、に対応している この新しいファイルのY行目。 今、私たちはすべてを記述するつもりだ 古い行からこれらのピクセル 私たちの新しい行に。 我々は我々だけでする必要があることをやったら 私たちの行の末尾にパディングを入れる そして我々は、ループバックだろうと継続 私たちの新しいファイルのすべての行。 最後に、私たちは私たちの古いを閉じる必要が ファイル、私たちの新しいファイルを閉じてから、リターン ゼロすべてがうまく行ったからです。 私の名前はロブであり、この凹部た。 [音楽再生]