お帰りなさい｡
どうだった？
大変でしたか？
ちょっと大変だけど､ いいことがありそうだから､ 嫌いにならないでほしいな｡
そして､ すぐに手に入らなかったとしても､ それは大きな問題ではないことを覚えておいてください｡
こうして私たちは学んでいくのです｡
では､ これをもう少し大きくしてみましょう｡
これでよしとする｡
そして､ 最初のステップとして､ これから使う2つの引数を取得することから始めます｡
では､ どうすればいいのか｡
さて､ まず最初に､ 画像の最初のパスをpathとします｡
とでも言っておきましょうか｡
画像はイメージです｡
フォルダー
そして､ この画像フォルダには､ cis dot arc vという引数を使用します｡ arc vは､ 最初の1つで､ パイソンファイルであることを思い出してください｡
これが2つ目､ これが3つ目です｡
プログラミングの仕組みは､ ゼロから始まり､ 1､ 2､ と進んでいきます｡
では､ 何を言おうとしているのか｡
Vの方はいらっしゃいますか？
そして､ 2つ目は､ 出力はどちらでしょうか？
フォルダー
6ドットアークVになる｡
2つです｡
ですから､ 私はいつも､ 自分たちが行ったことが正しいかどうかを確認するために､ テストをするのが好きです｡
では､ 画像をプリントしてみましょう｡
フォルダと出力フォルダ｡
そして､ このファイルを実行してみましょう｡
よし､ 見てみよう｡
ポケデックスと新規を取得します｡
これが功を奏しているようです｡
すごい｡
そこで､ 最初のタスクを実行しました｡
2つ目はどうでしょうか？
2つ目は､ この新しいフォルダーが存在するかどうかを確認することです｡
そうでない場合は､ ここで画像を入れて使えるように､ 作成する必要があります｡
だからまた､ これはif文のように聞こえるのです｡
だから､ もしということになる｡
そして､ そのフォルダが存在するかどうかを確認します｡
そこで､ それを実現する方法が､ OSSモジュールを使うことです｡
あとは､ path libというモジュールもあります｡
完全に自分次第です｡
今度はオッズで｡
できることは､ oのドットパスドットが存在すると言うことです｡
そして､ これはただ､ これは存在するのか？
だから､ 出力フォルダと言うことになりますね｡
これは存在するのでしょうか？
では､ その出力がどうなっているのか､ ちょっと見てみましょう｡
そこで､ もう一度if文を実行する前に､ 私は自分のコードをテストするのが好きなので､ こう言ってみます｡
Oのパスが存在する場合｡
あるいは申し訳ない｡
If we want printの代わりに､ これを実行しよう｡
そして､ 私たちは虚偽を得る｡
なぜ嘘なのか？
だって､ 存在しないんだもん｡
そこで､ if文が機能するように､ 実際にこのような処理を行う必要があります｡
と言わなければならない｡
逆に正しく理解したいからではない｡
もしこれが存在しなければ､ これをtrueに変換して､ このブロック内でフォルダを作成するための処理を行います｡
では､ どうすればいいのか｡
もう一度言いますが､ OSSモジュールを使って､ make dirsまたはmake directoryメソッドで､ ディレクトリ出力フォルダを指定するだけです｡
では､ もう一度､ コードをテストしてみましょう｡
そして､ これを実行すると
あれを見てください｡
新しいフォルダーを用意しました｡
すごい｡
このように､ このコードをもう一度実行すると､ 別のフォルダが作成されないことがわかりますが､ これは､ これをチェックしているだけだからです｡
そして､ このフォルダは今存在しているので､ 複製して別のフォルダを作るつもりはありません｡
すごい｡
だから､ 一歩一歩､ 前進しているのです｡
そしてまた､ ちょっと待ってください､ アンドレ､ と自分に問いかけているのかもしれません｡
Make Dersを知りませんでした｡
どうすればいいのか？
そしてまた､ このモデルが何をするものなのかを調べ､ ググって､ こうして物事を理解することを実践することです｡
プログラマーとして物事を暗記している人はいない｡
私を嫌いにならないでください｡
私は､ その筋肉の練習を手伝っているだけです｡
では､ 最後の部分です｡
最後に､ ポケデックスをループして各画像を取得し､ 変換して新しいフォルダに保存します｡
では､ どうすればいいのか｡
さて､ forループでファイル名をinとし､ 再びOSのドットリストディレクトリを使用します｡
そして､ これがディレクトリ内のアイテムになるのです｡
リストディールでは､ イメージフォルダを指定するだけでよいわけです｡
そしてこの中に､ それぞれのファイルパスがあります｡
ここで私は､ イメージはイメージ・ドット・オープンに等しいと言うことができます｡
そして､ ここで何をすべきなのか｡
だって､ 毎回これを開くことを忘れないでくださいね｡
そして､ このJPEG→PNGのファイルは､ これらのフォルダの外にあります｡
だから､ どうにかして開かないといけないのです｡
ポケデックスでの画像です｡
ただし､ フォルダポケデックスがいつも同じとは限らないので､ 入力されたものをそのまま使いたいことを忘れないでください｡
そこで､ ポケデックスフォルダを取得する代わりに､ 単純にSW文字列を使用することにします｡
そして､ この文字列の中で､ 私はtheが欲しいと言うつもりです｡
画像はイメージです｡
フォルダー
これはポケデックスのスラッシュとここのスラッシュを与えるもので､ ユーザーがスラッシュを入力することを想定しているので､
ここに含める必要はなく､ 別の文字列を与えてファイルを指定します｡
名前
ここから掴みます｡
では､ これらの画像をそれぞれ開いて､ 変換すればいいんですね？
そこで､ イメージ､ ドット保存と言って変換してみましょう｡
そしてもう一度､ F文字列を使って同じことをしますが､ 今度は出力フォルダに対してです｡
というわけで､ 言ってみることにします｡
出力フォルダーです｡
を与えてください｡
ファイル名です｡
そしてカンマを打って､ Pagに変換する｡
そして､ 面白半分に､ 画像が処理されるたびに､ すべて完了したことを知らせるために､ print all doneと言いましょう｡
では､ このコードを実行してみます｡
実はこのコードにはバグがあり､ 修正しなければならないのですが､ とりあえず何が起こるか見てみましょう｡
だから､ これを実行するんです｡
そして､ そこに行く｡
全員､ やりました！全員､ やりました！全員､ やりました！全員､ やりました！全員､ やりました！全員､ やりました｡
4枚の画像で､ 正しく動作しているように見えます｡
見てみよう｡
ここで新しいフォルダに移動すると
うーん｡
これらはまだJPEGのようですね｡
それは不思議ですね｡
なぜそうなるのでしょうか？
これを変換すべきなのでは？
そうですね｡
では､ この中で保存がドット､ p､ gを行うとしたらどうでしょう｡
そこで､ もう一度､ これを少し小さくしてみましょう｡
そこで､ ファイル形式でP&Gを保存してくださいということにして､ これを実行するとP&Gが表示されます｡
わかりました｡
あれを見てください｡
今は画像がありますが｡
ああ､ ありますね｡
ドットジェーピー､ ドットパッグ
どうしたんだ？
まあ､ 名前を綺麗にしないとね｡
そうですね｡
だから､ 私たちがやるべきことは
画像を開いた状態でつかむときです｡
その画像からドットジェイピーを削除して､ PとGとして保存できるようにする必要があります｡
では､ どうすればいいのか｡
というのも､ OSモジュールでこれを可能にする便利なツールがあるのです｡
だから､ 私たちにできることは､ クリーンと言うことです｡
名前と私たちは､ Oのドットパスと言うでしょう｡
ドット分割テキスト｡
そして､ これはテキストを分割してくれるのです｡
では､ お見せしましょう｡
ファイル名と言います｡
そして､ この中では､ 何も保存しない｡
コメントアウトさせていただきます｡
そして､ クリーンネームを印刷したいだけなのです｡
それでは､ スプリットテキストがどのような働きをするか見てみましょう｡
これをクリアして走ります｡
もう一度｡
あ､ この中にお茶が余っていますよ｡
テキストを分割する必要があります｡
では､ もう一度言ってみましょう｡
そして､ 見てください｡
名前と拡張子の間にテキストを分割したタプルを与えてくれます｡
それは非常に便利ですね｡
ですから､ この最初の部分だけ残して､ この部分は気にしないので､ ゼロと言うことでクリーンネームにアクセスすればいいのです｡
つまり､ タプルの最初の項目です｡
そこで､ 今度はこれに戻り､ finallyではなく､ clean nameで画像を保存することにします｡
これでうまくいくはずです｡
それでは､ ここでのコメントを一部削除させていただきます｡
そしてもうひとつ､ これらの画像はもう必要ないので､ すべて削除したいのです｡
理想はP&Gの画像だけなので､ 実際にこの新しいフォルダを削除してみます｡
では､ 削除としましょう｡
なるほど｡
削除することができます｡
これでよしとする｡
保存する
そして､ これが今､ 機能するかどうか見てみましょう｡
それでは､ コマンドを実行してみましょう｡
すべて完了しました｡
戻れば｡
おい､ 見ろよ｡
画像はすべてPNGになりました｡
そして､ その速さを目の当たりにしたのです｡
私たちは､ 最初のJPEGからPNGへのコンバータを作成したところです｡
でフォルダを与えれば､ このファイルは変換できるようになりました｡
何百枚､ 何千枚というJPEGの画像を与えても､ PNGに変換してくれるのです｡
必要であれば､ サイズ変更も可能です｡
画像フィルタをかけることも可能です｡
そして､ それをすべてPythonの数行のコードといくつかの便利なライブラリで実現することができます｡
とても､ かっこいいです｡
さて､ ここでは表面だけを取り上げていますが､ Pythonの威力が分かってきたのではないでしょうか｡
問題が発生しました｡
そしてこの問題は､ Pythonとそのライブラリで解決できる｡
そして､ ちょっとググって､ 試行錯誤して､ コードをデバッグすることで､ 多くの時間を節約できる可能性のあるものを作りました｡
これを手動で行うのではなく
ここまで来れば上出来です｡
今回が初めての画像処理プロジェクトです｡
ワクワクしてもらえたら嬉しいです｡
まだまだ取材は続きます｡
でも､ 自分をほめてあげてください｡ 次のビデオでお会いしましょう｡
バイバイ｡