1 00:00:00,000 --> 00:00:00,996 2 00:00:00,996 --> 00:00:12,470 >> [音楽再生] 3 00:00:12,470 --> 00:00:13,210 >> ROBボーデン:こんにちは。 4 00:00:13,210 --> 00:00:16,870 私はロブだとしましょう​​のサイズ この問題は、最大。 5 00:00:16,870 --> 00:00:20,990 だから我々は、それなのにで開始するつもりだ テンプレートが、我々はあることを行っている 6 00:00:20,990 --> 00:00:23,340 かなりの数の変更を行う。 7 00:00:23,340 --> 00:00:27,570 >> 今、我々はすぐに作っている参照してください。 私たちはもはやチェックしている変更 8 00:00:27,570 --> 00:00:31,560 私たちのRXCのために今3と等しくしませんが、 我々は、RCをチェックしているのは4と等しくない。 9 00:00:31,560 --> 00:00:34,670 我々はまた、中に含むようにしたいので ファイル内と外のファイルに加え 10 00:00:34,670 --> 00:00:39,550 このことを行っている引数、F 我々は、スケーリングしているする因数。 11 00:00:39,550 --> 00:00:45,430 >> 我々はそれの確信しているので、一度、私たちがしたい 文字列を変換するためのスキャンFを使用する 12 00:00:45,430 --> 00:00:49,030 floatにargv1。 13 00:00:49,030 --> 00:00:51,330 そして、我々は店に行っている その要因に。 14 00:00:51,330 --> 00:00:55,180 この追加の文字が確認している 私たちは実際に入っていないこと 15 00:00:55,180 --> 00:00:59,200 1.4 ABCのようなもの コマンドラインで。 16 00:00:59,200 --> 00:01:02,960 >> 今、我々はいくつかの別名を作成しましょう RV2とRV3ではありませんので、 17 00:01:02,960 --> 00:01:04,310 非常に役に立った名前。 18 00:01:04,310 --> 00:01:07,660 私たちは、その代わりに、コールするつもりだ ファイルアウトファイルに。 19 00:01:07,660 --> 00:01:11,580 今、私たちはそのことを確認するつもりだ 私達の要因は、実際には有効であった。 20 00:01:11,580 --> 00:01:16,330 そこで因子は、以下に等しい場合 100よりもゼロ以上、その後に従って 21 00:01:16,330 --> 00:01:19,660 仕様は、我々は拒否しなければならない その要因。 22 00:01:19,660 --> 00:01:23,890 >> 我々は確信しているとき、それは我々ができるようになりました、良いことだ n個のファイルを開いて、我々は確認する必要があり 23 00:01:23,890 --> 00:01:25,950 それが正常に開かれたことを確認してください。 24 00:01:25,950 --> 00:01:28,630 それがなかった場合、それはnullを返します。 25 00:01:28,630 --> 00:01:30,390 私たちは、外のファイルを開くしようとしている。 26 00:01:30,390 --> 00:01:33,420 そして再び、我々は作るためにチェックしたい それが正常にオープンされていることを確認してください。 27 00:01:33,420 --> 00:01:37,270 そしてそれは成功し、その後、オープンしなかった場合 我々はまた、閉じていることを確認する必要があり 28 00:01:37,270 --> 00:01:40,870 もともと成功し、n個のファイル 開かれた、あるいは、我々は持っている 29 00:01:40,870 --> 00:01:42,600 メモリリーク。 30 00:01:42,600 --> 00:01:46,350 >> だから今、私たちは、ビットマップを読み込むつもりだ ファイルヘッダとビットマップ情報 31 00:01:46,350 --> 00:01:48,890 n個のファイルからヘッダ。 32 00:01:48,890 --> 00:01:52,360 私たちは、ことを確認するつもりだ n個のファイルには、有効なビットマップだった。 33 00:01:52,360 --> 00:01:52,640 [OK]をクリックします。 34 00:01:52,640 --> 00:01:55,100 >> だから今我々は開始するつもりだ いくつかの変更を行う。 35 00:01:55,100 --> 00:01:58,840 だから我々は、変化することになるだろうので、 物事は、我々は最初に覚えておきたい 36 00:01:58,840 --> 00:02:01,510 n個のファイルの古い幅。 37 00:02:01,510 --> 00:02:05,160 私たちは、古いパディングを覚えておきたい 同じ計算を使用してn個のファイル 38 00:02:05,160 --> 00:02:06,990 copy.c.から 39 00:02:06,990 --> 00:02:09,840 >> そして今、我々は変更するつもりだ ビットマップInfoヘッダー。 40 00:02:09,840 --> 00:02:13,630 だから、我々は幅の両方を乗じている それ以来倍の高さ 41 00:02:13,630 --> 00:02:15,750 それは我々がすることによってスケーリングしているものです。 42 00:02:15,750 --> 00:02:18,420 我々は決定するつもりだ によるファイルの新規パディング 43 00:02:18,420 --> 00:02:21,140 新しい幅を使用した。 44 00:02:21,140 --> 00:02:27,330 そして、我々は新しいを決定するつもりだ 数を用いて画像の大きさ 45 00:02:27,330 --> 00:02:31,610 しようとしている単一の行のバイト その行の画素の数である 46 00:02:31,610 --> 00:02:35,960 倍画素の大きさに加え、 最後にパディングのバイト数 47 00:02:35,960 --> 00:02:40,310 その行の、そしてすべてのことを乗じる 我々が持っている行の数によって。 48 00:02:40,310 --> 00:02:43,800 だから、バイト数です 我々は我々の画像データを持っている。 49 00:02:43,800 --> 00:02:48,190 >> Bf.Bfsizeは今の数になるだろう 私たちの画像ベータプラスのバイト 50 00:02:48,190 --> 00:02:49,350 私たちのヘッダーのサイズ。 51 00:02:49,350 --> 00:02:53,910 ビットマップファイルヘッダーのとてもプラスサイズ ビットマップ情報ヘッダのサイズ。 52 00:02:53,910 --> 00:02:54,510 [OK]をクリックします。 53 00:02:54,510 --> 00:02:56,440 だから、私たちのヘッダにこれだけです。 54 00:02:56,440 --> 00:02:59,030 我々は、ファイル先頭を書き込むことができますし、 私たちのうちにInfoヘッダー 55 00:02:59,030 --> 00:03:01,590 ファイル、および我々は良いよ。 56 00:03:01,590 --> 00:03:03,800 >> 今では、実際に起動する時が来た ピクセルを書き込む 57 00:03:03,800 --> 00:03:05,120 outファイルにデータ。 58 00:03:05,120 --> 00:03:10,460 私たちは、サイズのバッファを宣言するつもりだ 古い幅RGBがトリプル、そして我々はしている 59 00:03:10,460 --> 00:03:13,790 という変数を宣言するだろう 我々はするつもりされている行のしびれ、 60 00:03:13,790 --> 00:03:15,640 当初は否定的な1に等しくなるように設定。 61 00:03:15,640 --> 00:03:19,090 我々は、我々が使用してすることになるだろうことがわかります 何を追跡するために、その 62 00:03:19,090 --> 00:03:22,640 我々は現在ロードされている行 このバッファへ。 63 00:03:22,640 --> 00:03:23,290 [OK]をクリックします。 64 00:03:23,290 --> 00:03:28,750 >> だから今、標準版とは異なり、 代わりに中で繰り返し処理の 65 00:03:28,750 --> 00:03:32,900 ファイルは、各反復するために行っている outファイルの行と把握 66 00:03:32,900 --> 00:03:38,130 内のファイルにどの行たちがしたい outファイルにこの行に配置します。 67 00:03:38,130 --> 00:03:44,930 だからうちのすべての行を繰り返し処理 新しい高さを使用してファイルには、まずね 68 00:03:44,930 --> 00:03:48,890 古い行を決定する予定 私たちがしている、これを使用するつもりだファイル 69 00:03:48,890 --> 00:03:53,560 この電流を取ることによって何をするつもり 係数で割った行。 70 00:03:53,560 --> 00:03:58,000 だから私たちに行を与えるために起こっている 私たちが望むの古いファイルで。 71 00:03:58,000 --> 00:04:03,310 >> だから今の行のしびれが同じ古いyとしない場合は、 我々は、行を読むために必要があるとしている 72 00:04:03,310 --> 00:04:05,940 私たちは、最新版の行バッファにしたいという。 73 00:04:05,940 --> 00:04:07,700 では、どのようにそれをするつもりですか? 74 00:04:07,700 --> 00:04:11,650 まず、把握するつもりだ で、その行を開始した位置 75 00:04:11,650 --> 00:04:13,100 元のファイル。 76 00:04:13,100 --> 00:04:18,630 だから、その位置があることを行っている 私たちのすべてのヘッダーと過去 77 00:04:18,630 --> 00:04:21,589 もはや過去の古いY行。 78 00:04:21,589 --> 00:04:23,880 >> だから何バイト 単一の行にありますか? 79 00:04:23,880 --> 00:04:28,740 ここでも、トリプル倍、RGBの大き古い 幅プラス古い詰め物なので、それはです 80 00:04:28,740 --> 00:04:30,640 単一の行のバイト数。 81 00:04:30,640 --> 00:04:33,680 そして、我々は過去の古いY行をスキップしたいと思います。 82 00:04:33,680 --> 00:04:37,580 だから我々は、F追求するつもりだし、我々はしている から開始するように設定を求めて使用して 83 00:04:37,580 --> 00:04:39,100 ファイルの先頭。 84 00:04:39,100 --> 00:04:42,740 我々は、この位置にシークFになるだろう ファイルでは、少なくとも私たちを入れて 85 00:04:42,740 --> 00:04:46,500 私たちが望む行の先頭 私たちのバッファに読み込む。 86 00:04:46,500 --> 00:04:48,510 >> 我々は、行を設定しようとしている 旧Yに等しいしびれ。 87 00:04:48,510 --> 00:04:53,080 だから今であれば、我々ループバックし、我々がしたい 私たちのうちのファイルに同じ行を使用して、 88 00:04:53,080 --> 00:04:55,970 その後、我々は読んでするつもりはない これで再び不必要。 89 00:04:55,970 --> 00:04:59,310 だから本当に、行しびれがある ただ最適化。 90 00:04:59,310 --> 00:05:05,500 >> 最後に、我々はに読み込まするつもりだ 現在の行の古い幅のRGBトリプル 91 00:05:05,500 --> 00:05:08,040 私たちは、元のファイルから必要なこと。 92 00:05:08,040 --> 00:05:12,270 だから今最新版の行からのピクセルが含まれています 我々がしたい、元のファイル 93 00:05:12,270 --> 00:05:14,200 outファイルに書き込む。 94 00:05:14,200 --> 00:05:18,960 だから今、すぐ上が好き、代わりに 古いファイルを反復処理する、我々は必要とする 95 00:05:18,960 --> 00:05:22,560 それは、新しいファイルの行を反復処理する。 96 00:05:22,560 --> 00:05:27,450 さてここで、代わりに繰り返し処理をすべて 旧画素の最新版並んでいる、 97 00:05:27,450 --> 00:05:31,210 我々はすべてを反復処理したい この中で私たちの新しいファイル内のピクセル 98 00:05:31,210 --> 00:05:32,480 特定の行。 99 00:05:32,480 --> 00:05:34,140 >> なぜ我々はそれをしたいですか? 100 00:05:34,140 --> 00:05:38,960 我々は我々がわからないことをここに見るので、 実際に、必ずしもすべてを使用して 101 00:05:38,960 --> 00:05:41,020 元のファイルのピクセル。 102 00:05:41,020 --> 00:05:46,630 我々は縮小している場合、我々は可能性があるため、 実際のピクセルをスキップしたい。 103 00:05:46,630 --> 00:05:48,090 そして、我々はこのことを確認 - 104 00:05:48,090 --> 00:05:49,690 Xファクターで割った - 105 00:05:49,690 --> 00:05:55,620 我々はYと答えるところ密接にここにミラー 把握する係数で割ったもの 106 00:05:55,620 --> 00:06:02,480 旧Y行目は、に対応している この新しいファイルのY行目。 107 00:06:02,480 --> 00:06:05,880 >> 今、私たちはすべてを記述するつもりだ 古い行からこれらのピクセル 108 00:06:05,880 --> 00:06:07,440 私たちの新しい行に。 109 00:06:07,440 --> 00:06:10,890 我々は我々だけでする必要があることをやったら 私たちの行の末尾にパディングを入れる 110 00:06:10,890 --> 00:06:15,540 そして我々は、ループバックだろうと継続 私たちの新しいファイルのすべての行。 111 00:06:15,540 --> 00:06:19,390 最後に、私たちは私たちの古いを閉じる必要が ファイル、私たちの新しいファイルを閉じてから、リターン 112 00:06:19,390 --> 00:06:21,540 ゼロすべてがうまく行ったからです。 113 00:06:21,540 --> 00:06:24,220 >> 私の名前はロブであり、この凹部た。 114 00:06:24,220 --> 00:06:29,184 >> [音楽再生]