タグ別アーカイブ: アプリ

thumbnail.png

PythonをEXE化してWindowsPC用画像ダウンローダを作ってみた

thumbnail.png

年賀状のイラスト 今まで年賀状のイラストはネットで検索して、良さそうなのがあったらちまちま保存してました。でも、これって結構時間がかかるんですよね。(^^; そこで今年は画像ダウンローダを作って快適に画像を保存することにしました。数百個のイラストも一瞬でダウンロードできるので快適ですね。(^^♪ 今回やったことを備忘録として残したいと思います。大まかな流れは以下の手順になります。 手順 1. GoogleImagesDownloadでコマンドプロンプトからダウンロード出来るようにする 2. wxPython、wxGladeでGUI化して使いやすくする 3. py2exeでPythonがない環境の人でも使えるようにする ちなみに私の環境は以下の通りです。 - Windows10 - Python 3.8.12 - VSCode 1.63.2 1.GoogleImagesDownloadでダウンロード出来るようにする GoogleImagesDownloadインストール ``` pip install google-images-download ``` これでもインストール出来るようですが、上手くいかないことが多いようですので、以下のようにgithubから直接インストールします。 ``` pip install git+https://github.com/Joeclinton1/google-images-download.git ``` また、GoogleImagesDownloadだけでは100個までしかダウンロード出来ないので、ChromeDriverもインストールします。 ChromeDriverインストール こちらはPCにインストールされているChromeのバージョンにあったドライバーをインストールします。 Chromeのバージョン確認方法 Chromeの右上にある点3つ→設定→Chromeについてにある最初の数字(赤下線) 以下からChromeのバージョンにあったドライバーをインストールして下さい。 ChromeDriver - WebDriver for Chrome - Downloads ◆CUIでダウンロード ▼コマンドプロンプトで以下のように入力すれば ▼ダウンロード出来ます ちなみにここで入力したコマンドは ``` googleimagesdownload -k "鬼滅の刃 炭治郎" -l 200 -cd "./chromedriver.exe" ``` になります。ここでは - 検索キーワード=鬼滅の刃 炭治郎 - 最大ダウンロード数=200 - chromedriverのパス を設定してます。 引数に関しては以下のサイトを参考に。 [Python]Google images downloadを用いて簡単に画像取得 - Qiita 2.wxPython、wxGladeでGUI化 上述したようにコマンドプロンプトでダウンロードしてもいいですが、毎回引数を設定するのは面倒です。そこでGUI化してみました。 PythonでGUI化というと、Python標準のTkinter、PySimpleGUI、wxPython等が有名です。中でもボタン等のオブジェクトを見ながら配置できるwxGladeが使えるwxPythonがオススメです。今回はwxPythonとwxGladeでGUI化してみました。 wxPythonインストール コマンドプロンプトからpipでインストールします。 ``` pip install wxPython ``` ボタン等のオブジェクトの説明に関しては以下のサイトが参考になります。 wxPython | Python-izm wxPython公式サイト wxPython API Documentation — wxPython Phoenix 4.1.1 documentation wxGladeインストール wxGlade公式サイト wxGlade: a GUI builder for wxWidgets/wxPython 上記公式サイトからダウンロード出来ます。 wxGladeダウンロード方法を含め、使い方は以下のサイトが参考になります。 wxGladeをざっくり使う pythonコード出力まで ◆imagedownload.py作成 今回作ったwxGladeのファイルは以下になります。 Download ActionDropbox - wxglade_imagedownload3.wxg このファイルをPython形式で出力して、Classや関数を追加したimagedownload.pyは以下になります。 Download ...